SpringBoot集成MybatisPlus

在使用Mybatis进行项目开发的时候,最繁琐的事情就是实体类,dao接口,mapper.xml文件的编写,几乎每个表都需要对应写一套,并且大部分的工作量都在最基本的增删改查上。如果表中的字段进行了修改,那么实体类,mapper文件甚至dao接口都要进行修改。

集成项目

  1. 导入Mybatisplus的依赖  

    注意:要首先删除Mybatis的依赖,因为Mybatisplus中包含有Mybatis的依赖 不需要独立导入 容易jar包冲突

   <dependency>

       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.3.1.tmp</version>
   </dependency>
2.修改配置文件

3.给要数据库操作的实体类加Mybatisplus的注解

因为Mybatisplus不需要写mapper文件 不需要写sql 那么Mybatisplus怎么知道实体类和数据库表映射关系(ORM) 通过注解表明这种关系

1.给要数据库操作的实体类加Mybatisplus的注解
因为Mybatisplus不需要写mapper文件 不需要写sql  那么Mybatisplus怎么知道实体类和数据库表映射关系(ORM)  通过注解表明这种关系


   /**
    * @TableName("cmfz_admin") 将当前的实体类和数据库的表建立联系
    * 注解参数:表名
    */
   @TableName("cmfz_admin")
   @Data
   public class CmfzAdmin implements Serializable {
       /**
        * 主键属性  @TableId
        *
        * value 该属性对应的数据库表中的字段名
        * type 主键自增的类型 AUTO 代表自动递增
        */
       @TableId(value = "id",type = IdType.AUTO)
       private Integer id;
       /**
        * 非主键属性  @TableField
        *  @TableField("username")  参数为该属性对应的数据库表中的字段名
        *
        */
       @TableField("username")
       private String username;

       @TableField("password")
       private String password;

   }

1.创建dao接口
import com.baizhi.entity.CmfzAdmin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
* 注意:
* 1.接口中不需要写方法
* 2.接口需要继承MybatisPlus中的类 BaseMapper  泛型为 当前dao对应的实体类
*/
public interface CmfzAdminDao extends BaseMapper<CmfzAdmin> {
}

2.直接使用Mybatisplus的方法 开始增删改查
 @Test
 public void contextLoads() {
//        根据id查询
       CmfzAdmin cmfzAdmin = cmfzAdminDao.selectById(1);
//        System.out.println(cmfzAdmin);

//        查询所有  selectList(null);
       List<CmfzAdmin> cmfzAdmins = cmfzAdminDao.selectList(null);
 for (CmfzAdmin admin : cmfzAdmins) {
           System.out.println(admin);
       }
   }

 /**
    * 添加
    */
 @Test
 public void test1(){
//        创建一个对象
       CmfzAdmin cmfzAdmin = new CmfzAdmin();
       cmfzAdmin.setUsername("hhhh");
       cmfzAdmin.setPassword("123456");

//        添加  返回值是成功的条数
 int insert = cmfzAdminDao.insert(cmfzAdmin);
       System.out.println(insert);
   }

 /**
    * 将id为5的管理员名字修改为lisi
    */
 @Test
 public void test2(){
       CmfzAdmin cmfzAdmin = new CmfzAdmin();
       cmfzAdmin.setId(5);
       cmfzAdmin.setUsername("lisi");

//        根据id更新数据
 int i = cmfzAdminDao.updateById(cmfzAdmin);

//        删除
 /**
        * deleteById() 根据id删除
        * deleteBatchIds() 批量删除 参数是要删除的id的集合
        */

   }

实现条件查询 (条件构造器的使用)
 /**
     * 要查询名字有zhangsan的管理员的信息
     */
    @Test
    public void test4(){
        /**
         * selectOne 查询一个方法
         *
         * selectOne 需要一个Wrapper对象 实际上是需要一个条件
         *
         * 条件是 查询名字为zhangsan管理员
         * sql where username = zhangsan
         * 需要 把 sql的条件 封装到 Wrapper对象 对象中
         * 将封装了条件的对象 给 selectOne
         *
         * Wrapper对象 条件构造器  将sql的条件 写入到Java对象中
         * QueryWrapper 查询条件构造器
         * UpdateWrapper 更新的条件构造器
         */
//        1.创建一个条件构造器 泛型 为要查询数据的实体类类型
        QueryWrapper<CmfzAdmin> queryWrapper = new QueryWrapper<>();

//        2.将 where username = zhangsan 等值查询 这个条件封装到 条件构造器
        // username = zhangsan ---》 eq("username","zhangsan") 参数1 字段名 参数2 要查询的值
        queryWrapper.eq("username","zhangsan");

//        3.通过条件构造器 查询
        CmfzAdmin cmfzAdmin = cmfzAdminDao.selectOne(queryWrapper);

        System.out.println(cmfzAdmin);
    }

    /**
     * 查询 名字为 lisi 或者 密码为 123456 的管理员
     *
     * sql username = lisi or password = 123456
     *
     * or 和 and 怎么构建?
     * eq("id",1).or().eq("name","老王")--->id = 1 or name = '老王'
     */
    @Test
    public void test5(){
//        1.创建条件构造器
        QueryWrapper<CmfzAdmin> queryWrapper = new QueryWrapper<>();

//        2.构造条件  条件构造器的方法的第一个参数基本上都是字段名
        queryWrapper.eq("username","lisi").or().eq("password","123456");

//        3.查询
        /**
         * 批量查询 selectList() 方法中如果参数是null 就是查询所有
         */
        List<CmfzAdmin> cmfzAdmins = cmfzAdminDao.selectList(queryWrapper);

        for (CmfzAdmin cmfzAdmin : cmfzAdmins) {
            System.out.println(cmfzAdmin);
        }
    }

条件修改:把用户名为zhangsan的管理员密码修改为123456

 /**
     * 用法和查询类似
     * 把用户名为zhangsan的管理员密码修改为123456
     *
     */
    @Test
    public void test6(){
//        1.创建条件构造器
        UpdateWrapper<CmfzAdmin> updateWrapper = new UpdateWrapper<>();

//        2.构造条件
//        where username = zhangsan
//        set password = 123456
        updateWrapper.set("password","123123");

        updateWrapper.eq("username","zhangsan");

//        3.使用方法修改
        /**
         * update
         * 参数1  一个管理员对象  可以直接写null
         * 参数2  条件构造器
         */
        cmfzAdminDao.update(null,updateWrapper);
    }

实现分页查询
1.配置分页插件  配置在启动类中即可
@Bean
 public PaginationInterceptor paginationInterceptor() {
       PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
 // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
 // paginationInterceptor.setOverflow(false);
 // 设置最大单页限制数量,默认 500 条,-1 不受限制
 // paginationInterceptor.setLimit(500);
 // 开启 count 的 join 优化,只针对部分 left join
       paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
 return paginationInterceptor;
   }

2.直接在代码可以使用分页查询
/**
    * 测试分页查询
    *
    * 获取第二页的数据(页码) 每页显示两条(size)
    */
 @Test
 public void test7(){

//        1.创建一个page对象 封装分页数据
 /**
        * 创建对象的时候 直接写入分页数据
        * 参数1 页码
        * 参数2 每页条数
        */
       Page<CmfzAdmin> adminPage = new Page<>(2,2);

//        2.使用分页查询的方法
 /**
        * 分页查询的方法 selectPage()
        * 参数1 IPage 分页对象 封装分页信息 封装获取第二页的数据(页码) 每页显示两条(size)
        * 参数2 条件构造器 可以直接写null
        */
       Page<CmfzAdmin> cmfzAdminPage = cmfzAdminDao.selectPage(adminPage, null);

//        3.从Page对象中获取查询到的数据
 /**
        * getRecords() 获取查询结果
        * getTotal() 总条数
        */
       System.out.println("总条数:"+cmfzAdminPage.getTotal());   List&lt;CmfzAdmin&gt; adminList = cmfzAdminPage.getRecords();
 for (CmfzAdmin cmfzAdmin : adminList) {
       System.out.println(cmfzAdmin);
   }

   }
 

Mybatis plus学习随笔:QueryWrapper条件构造器的使用 - JacksonLiyq - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在SpringBoot集成MybatisPlus需要完成以下步骤: 1. 添加依赖:在项目的pom.xml文件中添加MybatisPlus和Mybatis依赖。 2. 配置数据源:在application.properties或application.yml文件中配置数据库连接信息和MybatisPlus的相关配置信息,比如Mapper映射文件的路径等。 3. 创建Mapper接口:定义一个Mapper接口,继承MybatisPlus提供的BaseMapper接口,并添加相应的注解。 4. 创建实体类:创建与数据库表对应的实体类,并使用注解来映射实体类属性和数据库表字段。 5. 编写业务代码:在Service层中编写相应的业务代码,包括调用Mapper接口中的方法来完成对数据库的操作。 6. 测试:编写测试代码来测试上述功能是否正常运行。 以上就是SpringBoot集成MybatisPlus的基本步骤,希望能对您有所帮助。 ### 回答2: Spring Boot集成MyBatis Plus是一种常见的组合方式,可以快速、简单地进行Java开发。下面我会简单介绍一下集成的步骤和优势。 首先,为了集成Spring BootMyBatis Plus,我们需要在pom.xml中添加相关依赖。这些依赖将负责将 MyBatis Plus 和 Spring Boot 连接起来。然后,我们需要在配置文件中配置数据库连接信息和MyBatis Plus的一些参数。 接下来,我们可以开始编写我们的实体类和Mapper接口。MyBatis Plus提供了很多方便的注解和接口,可以省去我们编写大量的CRUD操作代码。例如,使用@TableName注解来指定表名,使用@Mapper注解来标识Mapper接口等。 然后,我们可以在Service类中使用MyBatis Plus提供的方法来进行数据操作。例如,使用getById()方法来根据主键查询数据,使用insert()方法来插入数据等。MyBatis Plus还提供了更多的方法和条件查询的支持,可以根据具体的业务需求选择合适的方法来使用。 最后,可以使用Spring Boot提供的Web框架来暴露我们的接口,并进行测试和使用。可以使用Postman等工具来发送HTTP请求,验证我们的接口是否正常工作。 通过集成Spring BootMyBatis Plus,我们可以大大提高开发效率和代码质量。MyBatis Plus提供了许多便捷的功能,可以简化我们的开发过程,减少编码工作量。而Spring Boot则提供了一种快速、简单的开发框架,可以帮助我们更好地构建和管理我们的项目。 总结一下,Spring Boot集成MyBatis Plus是一种常用且优秀的开发方式。它可以帮助我们快速搭建项目、简化开发流程,同时提供了很多便捷的功能和工具,可以提高我们的开发效率和代码质量。希望这些信息对你有所帮助! ### 回答3: Spring Boot为我们提供了很多便利,可以简化我们的开发工作。MyBatis Plus是一个优秀的ORM框架,能够帮助我们更加轻松地操作数据库。 要在Spring Boot项目中集成MyBatis Plus,首先需要在pom.xml文件中添加相关的依赖。可以使用Maven或Gradle管理项目依赖,建议使用Maven。添加MyBatis Plus的依赖后,可以在项目中使用MyBatis Plus提供的各种功能,如分页查询、条件查询、条件更新等。 在Spring Boot中配置MyBatis Plus也非常简单。只需要在application.properties或application.yml文件中添加相应的配置项即可。配置项包括数据源信息、MyBatis Plus的配置信息等。在配置数据源信息时,可以使用Spring Boot提供的自动配置功能,根据配置文件中的相关配置自动创建数据源并注入到项目中。在配置MyBatis Plus信息时,可以自定义表名前缀、表名生成策略等。 在编写代码时,可以直接使用MyBatis Plus提供的各种查询方法,也可以使用自定义的SQL语句进行操作。MyBatis Plus还提供了实体类生成器工具,可以根据数据库表结构自动生成实体类,减少手动编写实体类的工作量。 总的来说,Spring Boot集成MyBatis Plus非常简单且方便。通过集成MyBatis Plus,我们可以更加轻松地操作数据库,提高开发效率。同时,MyBatis Plus在性能优化上也做了很多工作,对于大型系统的开发也有很好的支持。希望以上回答能够对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值