mybatis plus 总结

作者:神秘网友 发布时间:2022-06-23 07:03:16

mybatis plus 总结

案例一
    /**     * 分页查询     * @return     */    @RequestMapping("/get0")    @ResponseBody    public String test0(){        LambdaQueryWrapperUser userLambdaQueryWrapper = Wrappers.lambdaQuery();        // 查询姓名中包含a的        userLambdaQueryWrapper.like(User::getUsername , "a");        // 查看第1页,每页3条        PageUser userPage = new Page(1 , 3);        IPageUser userIPage = userMapper.selectPage(userPage , userLambdaQueryWrapper);        System.out.println("总页数: "+userIPage.getPages());        System.out.println("总记录数: "+userIPage.getTotal());        // 打印出第1页数据        userIPage.getRecords().forEach(System.out::println);        return "aaa";    }    /**     * 不记录总记录数、不记录总页数     * @return     */    @RequestMapping("/get1")    @ResponseBody    public String test1(){        LambdaQueryWrapperUser userLambdaQueryWrapper = Wrappers.lambdaQuery();        userLambdaQueryWrapper.like(User::getUsername , "a");        PageUser userPage = new Page(1 , 2 , false);        IPageUser userIPage = userMapper.selectPage(userPage , userLambdaQueryWrapper);        System.out.println("总页数: "+userIPage.getPages());        System.out.println("总记录数: "+userIPage.getTotal());        userIPage.getRecords().forEach(System.out::println);        return "aaa";    }    /**     * selectMapsPage()的用法     * @return     */    @RequestMapping("/get2")    @ResponseBody    public String test2(){        LambdaQueryWrapperUser userLambdaQueryWrapper = Wrappers.lambdaQuery();        // 查询用户名包含a的        userLambdaQueryWrapper.select(User::getUsername).like(User::getUsername , "a");        // 查询1页,每页2条        PageMapString , Object mapPage = new Page(1 , 2 , false);        IPageMapString , Object mapIPage = userMapper.selectMapsPage(mapPage , userLambdaQueryWrapper);        System.out.println("总页数: "+mapIPage.getPages());        System.out.println("总记录数: "+mapIPage.getTotal());        // 打印查询到的数据        mapIPage.getRecords().forEach(System.out::println);        return "aaa";    }    /**     * 自定义sql     * @return     */    @RequestMapping("/get3")    @ResponseBody    public String test3(){        // 构建wrapper对象        LambdaQueryWrapperUser userLambdaQueryWrapper = Wrappers.lambdaQuery();        // 查询用户名包含a的        userLambdaQueryWrapper.like(User::getUsername , "a");        // 查询第1页,每页2条        PageUser mapPage = new Page(1 , 2 , false);        // 调用mapper层方法        IPageUser mapIPage = userMapper.selectByPage(mapPage , userLambdaQueryWrapper);        System.out.println("总页数: "+mapIPage.getPages());        System.out.println("总记录数: "+mapIPage.getTotal());        // 打印出查询结果        mapIPage.getRecords().forEach(System.out::println);        return "aaa";    }@Componentpublic interface UserMapper extends BaseMapperUser {    IPageUser selectByPage(IPageUser userPage, @Param(Constants.WRAPPER) WrapperUser userWrapper);}select id="selectByPage" resultType="com.ychen.mybatis.demo01.model.User"    select * from user ${ew.customSqlSegment}/select
案例二
    @GetMapping("/findUser")    @ResponseBody    public String testFind(){        ListUserBookPo users = userMapper.findUser();        System.out.println(users);        return "aaa";    }    @GetMapping("/findUsers")    @ResponseBody    public String testLimit(){        ListUser users = userMapper.findUsers();        System.out.println(users);        return "aaa";    }    /**     * http://localhost:8080/test/listAll     * {     *     "username": "chen1",     *     "bookname": "book1"     * }     * @param req     * @return     */    @RequestMapping(value = "/listAll", method = RequestMethod.POST)    @ResponseBody    public String testList(@RequestBody UserBookReqDTO req){        ListUserBookRespDTO list = userMapper.getUserBook(req);        System.out.println(list);        return "aaa";    }    // 分页查询    @RequestMapping("/get0")    @ResponseBody    public String test0(){        // 构建wrapper对象        LambdaQueryWrapperUser userLambdaQueryWrapper = Wrappers.lambdaQuery();        // 查询用户名包含a的        userLambdaQueryWrapper.like(User::getUsername , "c");        // 查询第1页,每页2条        PageUser mapPage = new Page(1 , 2 , false);        // 调用mapper层方法        IPageUser mapIPage = userMapper.selectByPage(mapPage , userLambdaQueryWrapper);        System.out.println("总页数: "+mapIPage.getPages());        System.out.println("总记录数: "+mapIPage.getTotal());        // 打印出查询结果        mapIPage.getRecords().forEach(System.out::println);        return "aaa";    }    /**     * 分页连接     *     * http://localhost:8080/test/listAll     *      * {     *      *     "username": "chen1",     *      *     "bookname": "book1"     *      * }     * @param req     * @return     */    @RequestMapping("/get1")    @ResponseBody    public String test1(@RequestBody UserBookReqDTO req){        int pageNo = 1;        int pageSize = 3;        String username = req.getUsername();        String sex = req.getSex();        String bookname = req.getBookname();        // 构建wrapper对象        QueryWrapperUserBookRespDTO wrapper = new QueryWrapper();        // 构建page对象        PageUserBookRespDTO page = new PageUserBookRespDTO(pageNo, pageSize);        // 调用mapper层方法        IPageUserBookRespDTO userPageList = userMapper.getUserBooks(username, sex, bookname, page, wrapper);        System.out.println(userPageList);        return "aaa";    }    // 连接查询    @SelectProvider(type = findUserProvider.class, method = "findUser")    ListUserBookPo findUser();    class findUserProvider {        public String findUser() {            String sql = new SQL()                    .SELECT("u.username", "u.password", "b.bookname", "b.author")                    .FROM("user u")                    .INNER_JOIN("book b")                    .WHERE("u.username = b.author")                    .toString();            return sql;        }    }    // 分页查询    @SelectProvider(type = findUsersProvider.class, method = "findUsers")    ListUser findUsers();    class findUsersProvider {        public String findUsers() {            String sql = new SQL()                    .SELECT("id", "username", "password", "sex", "birthday")                    .FROM("user")                    .LIMIT("2, 3")                    .toString();            return sql;        }    }    // 分页连接查询    @SelectProvider(type = getUserBookProvider.class, method = "getUserBook")    ListUserBookRespDTO getUserBook(UserBookReqDTO user);    class getUserBookProvider {        public String getUserBook(UserBookReqDTO user) {            SQL sql = new SQL();            sql.SELECT("u.id", "u.username", "u.password", "u.sex", "u.birthday", "b.id", "b.bookname", "b.author", "b.price")                    .FROM("user u").INNER_JOIN("book b").WHERE("u.username = b.author");            if(user.getUsername() != null) {                sql.SET("username=#{user.username}");            }            if(user.getSex() != null) {                sql.SET("sex = #{user.sex}");            }            if(user.getBookname() != null) {                sql.SET("bookname = #{user.bookname}");            }            if(user.getAuthor() != null) {                sql.SET("author = #{user.author}");            }            if(user.getPrice() != null) {                sql.SET("price = #{user.price}");            }            if(user.getPageSize() != null  user.getPageNum() != null) {                sql.LIMIT("#{user.pageNum}, #{user.pageSize}");            }            return sql.toString();        }    }    // 分页    IPageUser selectByPage(IPageUser userPage, @Param(Constants.WRAPPER) WrapperUser userWrapper);    // 分页连接    IPageUserBookRespDTO getUserBooks(@Param("username") String username, @Param("sex") String sex, @Param("bookname") String bookname, @Param("page")    PageUserBookRespDTO page, @Param(Constants.WRAPPER) WrapperUserBookRespDTO wrapper);    select id="selectByPage" resultType="com.ychen.mybatis.demo02.model.User"        select * from user ${ew.customSqlSegment}    /select    select id="getUserBooks" resultType="com.ychen.mybatis.demo02.model.dto.UserBookRespDTO"        SELECT        u.id,        u.username,        u.password,        u.sex,        u.birthday,        b.bookname,        b.author,        b.price        FROM        user AS u        LEFT JOIN book AS b ON u.username = b.author        where            if test="username !=null and username!=''"                or u.username like concat('%',#{username},'%')            /if            if test="sex !=null and sex!=''"                or u.sex like concat('%',#{sex},'%')            /if            if test="bookname != null and bookname!=''"                or b.bookname like concat('%',#{bookname}'%')            /if        /where        ${ew.customSqlSegment}    /select
案例三
public interface UserDao extends BaseMapperUser {}    /**     * 单表查询所有     * @return     */    @GetMapping("/test1")    @ResponseBody    public String test1() {        ListUser users = userDao.selectList(null);        users.forEach(user- System.out.println("user = " + user));        return "success";    }    /**     * 单表,根据id查询     * @return     */    @GetMapping("/test2")    @ResponseBody    public String test2() {        User user = userDao.selectById("1");        System.out.println("user = " + user);        return "success";    }    /**     * 条件查询     * @return     */    @GetMapping("/test3")    @ResponseBody    public String test3() {        QueryWrapperUser queryWrapper = new QueryWrapper();        // 设置等值查询,即查询age=23的对象        queryWrapper.eq("age",23);        // 设置小于查询        //queryWrapper.lt("age",23);        // 小于等于查询        //queryWrapper.ge("age",23);        // gt 大于        // ge 大于等于        ListUser users = userDao.selectList(queryWrapper);        users.forEach(user- System.out.println(user));        return "success";    }    /**     * 模糊查询     * like 表示包含某个字符     * likeLeft 表示以某个字符结尾     * likeRight 表示以某个字符开头的     * @return     */    @GetMapping("/test4")    @ResponseBody    public String test4() {        QueryWrapperUser queryWrapper = new QueryWrapper();        queryWrapper.likeRight("name","g");        ListUser users = userDao.selectList(queryWrapper);        users.forEach(user- System.out.println("user = " + user));        return "success";    }    /**     * 添加     * @return     */    @GetMapping("/test5")    @ResponseBody    public String test5() {        User entity = new User();        entity.setId("4").setAge(23).setName("小明明").setBir(new Date());        userDao.insert(entity);        return "success";    }    /**     * 删除     * @return     */    @GetMapping("/test6")    @ResponseBody    public String test6() {        // 删除单个        //userDao.deleteById("4");        // 通过id批量删除        userDao.deleteBatchIds(Arrays.asList(5, 6));        return "success";    }    /**     * 修改     * @return     */    @GetMapping("/test7")    @ResponseBody    public String test7() {        User user = userDao.selectById("1");        user.setAge(99);        userDao.updateById(user);        return "success";    }    /**     * 按条件修改     * 将age=99的 用户名改为狗蛋     * @return     */    @GetMapping("/test8")    @ResponseBody    public String test8() {        User user = userDao.selectById("1");        user.setName("狗蛋");        QueryWrapperUser updateWrapper = new QueryWrapper();        // 修改age=99的对象        updateWrapper.eq("age",99);        userDao.update(user, updateWrapper);        return "success";    }    /**     * 分页查询     * @return     */    @GetMapping("/test9")    @ResponseBody    public String test9() {        // new一个page对象,传入2个参数,第一个参数表示页数,第二个参数表示每页多少条数据        IPageUser page = new Page(1,2);        // 调用分页的方法        page = userDao.selectPage(page, null);        page.getRecords().forEach(user - System.out.println("user = " + user));        return "success";    }    /**     * 带条件的分页查询     * 查询age=99的对象     * @return     */    @GetMapping("/test10")    @ResponseBody    public String test10() {        // new一个条件对象,例如age=99        QueryWrapperUser queryWrapper = new QueryWrapper();        queryWrapper.eq("age",99);        // new一个page对象        IPageUser page = new Page(1,2);        // 调用分页的方法,传入2个参数        page = userDao.selectPage(page, queryWrapper);        page.getRecords().forEach(user- System.out.println("user = " + user));        return "success";    }

mybatis plus 总结 相关文章

  1. Mybatis plus通用字段自动填充的最佳实践总结

    在进行持久层数据维护(新增或修改)的时候,我们通常需要记录一些非业务字段,比如:create_time、update_time、update_by、create_by等用来维护数据记录的创建时间、修改时间、修改人、创建人等信息。通常情况下我们需要对这些...

  2. mybatis plus实战:springboot 结合mybatis plus实例

    mybatis plus实战:springboot 结合mybatis plus实例 文章目录 前言 集成步骤: 源码地址: 前言 mybatis plus 不但能够像HIbernate一样针对对象操作数据库,也支持mybatis写原生的sql。而且可以根据表自动生成dao,service,controler层的增删改成方...

  3. mybatis-plus思维导图让mybatis-plus不再难懂

    mybatis-plus思维导图,让mybatis-plus不再难懂 mybatis-plus思维导图,让mybatis-plus不再难懂 mybatis Mybatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结...

  4. 【mybatis-plus】mybatis-plus多表分页查询

    【mybatis-plus】mybatis-plus多表分页查询 文章目录 mybatis-plus分页配置 自定义分页类 定义接收参数的实体类dto 定义返回的实体类PageResultDto 分页操作实现 业务层逻辑 mapper层操作 测试 在我们写业务逻辑的时候,自己写分页相对来说...

  5. mybatis-plus思维导图,让mybatis-plus不再难懂

    mybatis-plus思维导图,让mybatis-plus不再难懂 一、mybatis-plus与mybatis mybatis Mybatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使...

  6. MyBatis-Plus 快速上手 (springboot快速集成mybatis-plus)

    MyBatis-Plus 快速上手 (springboot快速集成mybatis-plus) 学习笔记及梳理来自尚硅谷Hellen老师视频观后感 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。详情见官网...

  7. mybatis-plus代码生成器:mybatis-plus自动生成controller、serv

    mybatis-plus代码生成器:mybatis-plus自动生成controller、service、dao、mapper、pojo代码,可灵活配置生成路径!!!程序猿的福音!!! 在我们需要一些数据库的实体类时,需要手动创建实体与类,这很浪费时间,所以我研究了一下和...

  8. MyBatis-Plus 自定义sql

  9. Fluent Mybatis, 原生Mybatis, Mybatis Plus三者功能对比

    Fluent Mybatis, 原生Mybatis, Mybatis Plus三者功能对比 使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。 不用再需要在Dao中组装查询或更新操作,在xml或mapper中再...

  10. springboot整合mybatis_plus

    码云代码链接: https://gitee.com/liselotte/spring-boot-mp-demo

  11. Mybatis 和 Mybatis Plus 的区别

    Mybatis 和 Mybatis Plus 的区别 Mybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。 MyBatis-Plus 优点 1、依赖少...

  12. mybatis plus 分页 失效

    mybatis plus 分页 失效 mybatis plus 分页 失效 查了半天 都是查全部 检查语句也没有问题 于是发现 MybatisPlusConfig分页配置文件没有加上注解 加上注解 @Configuration 或者component解决

  13. mybatis升级为mybatis-plus踩到的坑

    mybatis升级为mybatis-plus踩到的坑 最近使用RuoYi-Vue来做后台管理脚手架。RuoYi-Vue 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),内置模块如:部门管理、角色用户、菜单及按钮授...

  14. Mybatis/tk-Mybatis/Mybatis-plus 中generator的使用

    Mybatis/tk-Mybatis/Mybatis-plus 中generator的使用 Mybatis-generator使用文档 1.简介 2.使用 2.1 使用流程 2.2 maven依赖 2.3 Xml配置文件 2.4 入口 2.4.1 使用java代码运行 2.4.2 使用maven插件运行 2.4.3 两种入口的路径差异 3. tk-mybatis下使用mybatis

  15. 【Springboot采坑日记】Springboot集成Mybatis和Mybatis-Plus自

    【Springboot采坑日记】Springboot集成Mybatis和Mybatis-Plus自定义SQL分页 Springboot集成Mybatis和Mybatis-Plus的大坑 集成问题来源 问题来源 挖坑过程 解决方案 笔者近期在整合Springboot和mybatis时,一直采用的以下方式: pom文件: dependency groupId...

  16. Mybatis-plus 分页

    Mybatis-plus 分页 SringBoot 中 官网https://baomidou.com/guide/page.html @Configuration@MapperScan(com.huliyong.service.*.mapper*)public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterce

  17. MyBatis-Plus【踩坑记录01】

    1、SqlSessionFactory不要使用原生的,使用MybatisSqlSessionFactory。 @Bean("sqlSessionFactory") @Primary public SqlSessionFactory sqlSessionFactory(@Autowired @Qualifier("dataSource") DataSource dataSource) throws Exception { // MybatisPlus

  18. Mybatis3源码笔记(八)小窥MyBatis-plus

    前言 Mybatis-Plus是一个 MyBatis增强工具包,简化 CRUD 操作,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生,号称无侵入,现在开发中比较常用,包括我自己现在的项目中ORM框架除使用JPA就是他了。 我好奇的是他...

  19. Mybatis plus

    Mybatis plus 一、简介 官网:http://mp.baomidou.com/ 参考教程:http://mp.baomidou.com/guide/ MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 二、特性 无侵入 :只做增强不做...

  20. Mybatis-Plus-集mybatis与hibernate的优点一起的框架

    Mybatis-Plus-集mybatis与hibernate的优点一起的框架 一、Mybatis-Plus简介 优势 SQL语句可以自由控制、更灵活和性能更高 SQL与代码分离,易于阅读和维护 提供XML标签,支持编写动态SQL语句 劣势 简单CURD操作也要写SQL,开发量大 XML中需要维护...

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2021, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词