简介:
此项目是一个前后端分离的小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.结构布局
具体代码参考源代码
请发表评论