5 开始前端控制器的编码
复制controller层的框架整体,和前端进行交互的页面
@RequestMapping("/queryAll") public List<Singer> queryAll() { // 先演示普通的查询,再逆序查询 return null; } @RequestMapping("/queryByName") public List<Singer> queryByName(String name) { // 使用lambdaQueryWrapper 的like方法模糊查询 // list方法查询到所有的符合条件值并返回 return null; } @PostMapping("/save") public String save(HttpServletRequest request) { Singer singer = new Singer(); singer.setName(request.getParameter("name")) .setSex(Integer.parseInt(request.getParameter("sex"))) .setPic(request.getParameter("pic")) .setBirth(new Date()) .setLocation(request.getParameter("location")) .setIntroduction(request.getParameter("introduction")); // 调用save方法,并判断返回值的正误,返回前端对应的字符串 return null; } @RequestMapping("/update") public String update(int id, String introduction) { // 使用eq和set去设置条件构造器 // 调用update传入条件构造器,并判断返回值的正误,返回前端对应的字符串 return null; } @RequestMapping("/delete") public String delete(Integer id) { // 调用removeById方法直接删 return null; }
SQL语句是数据持久化技术的核心,jdbc使用String字符串拼接SQL语句;mybatis使用xml映射文件在标签里编写SQL语句;但是,MP无需使用SQL语句(一些复杂的业务可以使用SQL语句来完成),直接调用方法即可在框架的底层实现SQL语句的拼接和执行。
在这里来查看一下mp的官方开发文档,大概讲一下几个方法的大概用处,然后摁住Ctrl查看源码,知道为什么可以使用这些方法完成相应的功能。
首先是注入SingerService对象
@Autowired private SingerService service;
这里的用法是spring框架的控制反转,即将设计好的类对象注册进spring的IOC容器中将对象的控制权交给容器,当需要使用的时候就使用@Autowired注解让容器创建一个对象出来使用。完成的作用相当于使用new的方式调用类的构造器创建一个对象
查询所有的记录
@RequestMapping("/queryAll") public List<Singer> queryAll() { List<Singer> singers = service.list(); return singers; }
逆序查询的话就需要在SQL语句拼接order by id desc,这个拼接条件的功能就需要使用wrapper构造器来完成了
5.1 wrapper构造器
总而言之,wrapper构造器的作用就是用来拼装where,order by等条件语句的作用,如果你的增删改查无需条件的话,可以不用wrapper,但凡需要使用SQL语句需要拼接条件的话就需要使用wrapper。更加具体的wrapper案例分析参考博客wrapper构造器的简要案例分析
逆序查询所有记录的方法
逆序查询所有 http://localhost:8888/singer/queryAll
@RequestMapping("/queryAll") public List<Singer> queryAll() { LambdaQueryWrapper<Singer> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.orderByDesc(Singer::getId); List<Singer> singers = service.list(lambdaQueryWrapper); return singers; }