简介:

此项目是一个前后端分离的小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;
    }
}

bookinfoentity

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;
    }
}

bookstateEntity

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();

}

BookinfoService

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;
    }
}

BookinfoServiceImpl

 

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);
   }
}

BookinfoController

 

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.结构布局

具体代码参考源代码

 

版权声明:本文为wuhen8866原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wuhen8866/p/9762254.html