簡介:
此項目是一個前后端分離的小demo,
開發工具:idea+微信小程序開發工具
前端:界面布局樣式和js的跳轉
后端:依靠SpringBoot的業務邏輯層
項目的碼雲地址:
https://gitee.com/zhege/WebChatDemoJava
微信開發工具的使用和代碼的結構及其含義參考
https://developers.weixin.qq.com/miniprogram/dev/api/
后端業務邏輯的完成
1.數據庫的創建
工具:Navicat
2. dao層及其方法的實現
1>bookinfo的實例化,利用@Entity完成映射

@Entity @Table(name = "bookinfo") public class BookinfoEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int bookId; @Column private String bookType; @Column private String bookName; @Column private int bookNum; @Column private int bookState; public int getBookId() { return bookId; } public void setBookId(int bookId) { this.bookId = bookId; } public String getBookType() { return bookType; } public void setBookType(String bookType) { this.bookType = bookType; } public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public int getBookNum() { return bookNum; } public void setBookNum(int bookNum) { this.bookNum = bookNum; } public int getBookState() { return bookState; } public void setBookState(int bookState) { this.bookState = bookState; } }
2>bookstate的實例化

@Entity @Table(name = "bookstate") public class BookstateEntity { @Id private int bookState; @Column private String bookStateinfo; public int getBookState() { return bookState; } public void setBookState(int bookState) { this.bookState = bookState; } public String getBookStateinfo() { return bookStateinfo; } public void setBookStateinfo(String bookStateinfo) { this.bookStateinfo = bookStateinfo; } }
3>利用repository實現對對象的持久化操作,是OO的真正實現
@Repository public interface BookInfoRepository extends JpaRepository<BookinfoEntity,Integer> { }
@Repository public interface BookstateRepository extends JpaRepository<BookstateEntity,Integer> { }
3.service層的實現、
3.1 BookinfoService接口

package com.example.demo.service; import com.example.demo.vo.BookinfoVo; import java.util.List; /** * Author: wuhen * Date: 2018/10/9 * Time: 20:40 */ public interface BookinfoService { //查詢書籍 BookinfoVo findbookOne(Integer bookId); //查詢所有書籍 List<BookinfoVo> findbookAll(); }
3.2 接口的實現

package com.example.demo.service.impl; import com.example.demo.entity.BookinfoEntity; import com.example.demo.entity.BookstateEntity; import com.example.demo.repository.BookinfoRepository; import com.example.demo.repository.BookstateRepository; import com.example.demo.service.BookinfoService; import com.example.demo.util.BookConverter; import com.example.demo.vo.BookinfoVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * Author: wuhen * Date: 2018/10/9 * Time: 20:48 */ @Service public class BookinfoServiceImpl implements BookinfoService { @Autowired private BookinfoRepository bookinfoRepository; @Autowired private BookstateRepository bookstateRepository; BookConverter bookConverter=new BookConverter(); @Override public BookinfoVo findbookOne(Integer bookId) { BookinfoEntity bookinfoEntity= bookinfoRepository.findById(bookId).get(); BookstateEntity bookstateEntity = bookstateRepository.findById(bookinfoEntity.getBookState()).get(); BookinfoVo bookinfoVo; bookinfoVo = bookConverter.convert(bookinfoEntity, BookinfoVo.class); bookinfoVo.setBookStateinfo(bookstateEntity.getBookStateinfo()); return bookinfoVo; } @Override public List<BookinfoVo> findbookAll() { List<BookinfoEntity> bookinfoEntitys=bookinfoRepository.findAll(); List<BookinfoVo> bookinfoVos=new ArrayList<>(); for (BookinfoEntity bookinfoEntity:bookinfoEntitys) { BookinfoVo bookinfoVo; BookstateEntity bookstateEntity= bookstateRepository.findById(bookinfoEntity.getBookState()).get(); bookinfoVo=bookConverter.convert(bookinfoEntity,BookinfoVo.class); bookinfoVo.setBookStateinfo(bookstateEntity.getBookStateinfo()); bookinfoVos.add(bookinfoVo); } return bookinfoVos; } }
4. controller層的實現

package com.example.demo.controller; import com.example.demo.service.BookinfoService; import com.example.demo.util.ResultVOUtil; import com.example.demo.vo.BookinfoVo; import com.example.demo.vo.ResultVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * Author: wuhen * Date: 2018/10/9 * Time: 20:55 */ @RestController @RequestMapping("/book") public class BookinfoController { @Autowired private BookinfoService bookinfoService; //查詢單個 @GetMapping("/findOne") public ResultVO<BookinfoVo> findbookOne(@RequestParam(value = "bookId") Integer bookId){ BookinfoVo bookinfoVo= bookinfoService.findbookOne(bookId); return ResultVOUtil.success(bookinfoVo); } //查詢所有 @GetMapping("/findAll") public ResultVO<BookinfoVo> findbookAll(){ List <BookinfoVo> bookinfoVo= bookinfoService.findbookAll(); return ResultVOUtil.success(bookinfoVo); } }
5. 請求返回json數據
{ "code": 0, "msg": "成功", "data": [ { "bookId": 1, "bookType": "數學", "bookName": "大數宣講", "bookNum": 20, "bookStateinfo": "在架" }, { "bookId": 2, "bookType": "語文", "bookName": "國語", "bookNum": 30, "bookStateinfo": "在架" }, { "bookId": 3, "bookType": "英語", "bookName": "四六級", "bookNum": 45, "bookStateinfo": "在架" }, { "bookId": 4, "bookType": "科技", "bookName": "天眼", "bookNum": 12, "bookStateinfo": "在架" } ] }
{ "code": 0, "msg": "成功", "data": { "bookId": 2, "bookType": "語文", "bookName": "國語", "bookNum": 30, "bookStateinfo": "在架" } }
前端業務邏輯的完成
1.效果
2.結構布局
具體代碼參考源代碼