SpringBoot集成MyBatis-Plus添删改

tech2022-09-11  88

SpringBoot集成MyBatis-Plus

1.mybatis-plus的简介

mybatis-plus是一个mybatis的增强工具,在mybatis的基础上只做增强不做改变,为简化开发、提高效率而生. MyBatis-Plus特性:

●无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 ● 损耗小:启动即会自动注入基本CURD, 性能基本无损耗,直接面向对象操作.支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条件,无需再担心字段写错

●支持多种数据库:支持MySQL、MariaDB、Oracle、 DB2、H2、HSQL、sQlite、Postgre、SQLServer2005、SQLServer 等多种数据库

●强大的CRUD操作:内置通用Mapper、 通用Service, 仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求 ●内置分页插件:基于MyBatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List 查询

2.创建项目

添加关键依赖包

<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> </dependency>

在application.properties添加相关配置

spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/crm?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai logging.level.root=warn logging.level.com.lm=trace logging.pattern.console=%p%m%n

3.在启动类中添加对Mapper包的扫描 4.编写实体类 @TableName注解在类上,指定数据库表名 @Tableld(type= ldType.AUTO)注解在主鍵属性上,且指定主鍵生成策略为自动增长 @Tablefild 注解在属性上,指定数据库字段名(不满足默认匹配规定吋需要指定)。属性和字段名默认匹配规定是全小写的属性对应同名的字段:采用骆驼命名规定的属性,对应的字段名为两个単词之间使用_下划线连接. 例如: usName属性默认对应的字段名カusr _name.

5.创建Mapper接口 6.编写测试类

//根据Id查询 @Test public void findById() { SysUser sysUser = userMapper.selectById(20l); System.out.println(sysUser); } //添加 @Test public void insert(){ int sum= userMapper.insert(new SysUser(1,"贱婢","1111",9,1)); Assert.assertEquals(sum,1); } //删除 @Test public void delete(){ QueryWrapper<SysUser> wrapper=new QueryWrapper<>(); wrapper.eq("user_id",25); int sum=userMapper.delete(wrapper); Assert.assertEquals(sum,1); } //修改 @Test public void update(){ int sum=userMapper.updateById(new SysUser(29,"伸缩","11111",9,1)); Assert.assertEquals(sum,1); } //分页 @Test public void Page(){ QueryWrapper<SysUser> wrapper=new QueryWrapper<>(); wrapper.eq("user_role_id",9); Page<SysUser> page=new Page<>(1,2); IPage<SysUser> userIPage=userMapper.selectPage(page,wrapper); System.out.println("总记录数"+userIPage.getTotal()); System.out.println("总页数"+userIPage.getPages()); System.out.println("当前页数"+userIPage.getCurrent()); System.out.println("每页记录数"+userIPage.getSize()); System.out.println("当前录数"); userIPage.getRecords().forEach(u-> System.out.println(u)); }

分页的输出结果

最新回复(0)