springboot集成mybatis-plus
springboot项目 先导入相关依赖mybatis-plus相关依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
加快实体类开发使用lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

2 端口号和数据库配置
1 server: 2 port: 8080 3 4 spring: 5 datasource: 6 driver-class-name: com.mysql.cj.jdbc.Driver 7 username: root 8 password: "131412" 9 url: jdbc:mysql://localhost:3306/user?serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&characterEncoding=UTF-8
3创建实体类
导入lombok



4写一个UserMapper接口
1 package com.example.demo6.mapper; 2 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 import com.example.demo6.pojo.user; 5 import org.springframework.stereotype.Repository; 6 //代表持久层 继承BaseMapper后 就有了基本的曾删改查等功能 7 @Repository 8 public interface UserMapper extends BaseMapper<user> { 9 10 11 }

5主启动类扫描mapper接口

6测试类测试 查询全部数据

7配置日志
mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
8实现增删改查
插入一条数据
1 @Test 2 public void testInsert(){ 3 user myuser=new user(); 4 myuser.setUserName("萌萌"); 5 myuser.setPassWord(333344); 6 myuser.setRealName("w哈哈哈哈哈v"); 7 8 int result= userMapper.insert(myuser); 9 System.out.println(result);//受影响的行数 10 System.out.println(myuser);//id自动生成 11 }
主键自增策略

在实体类上加注解 改变主键自增策略

通过id修改一条数据
1 @Test 2 public void testUpdate(){ 3 user myuser1=new user(); 4 myuser1.setId(1L); 5 myuser1.setUserName("黄现强"); 6 myuser1.setPassWord(1314); 7 int i= userMapper.updateById(myuser1); 8 System.out.println(i); 9 10 11 }
日期自动填充
在实体类上添加属性
@Data public class user { private long id; private String userName; private int passWord; private String realName; @TableField(fill = FieldFill.INSERT_UPDATE) private Date createTime; @TableField(fill = FieldFill.INSERT) private Date updateTime; }
编写自动填充处理类
@Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("开始填充"); this.setFieldValByName("createTime",new Date(),metaObject); this.setFieldValByName("updateTime",new Date(),metaObject); } @Override public void updateFill(MetaObject metaObject) { log.info("更新填充"); this.setFieldValByName("updateTime",new Date(),metaObject); } }
数据查询
@Test
2 public void testSearch(){
3 // 通过id查询单个数据
4 user searchUser= userMapper.selectById(2);
5 System.out.println(searchUser);
6 }
7 @Test
8 public void testSearch1(){
9 // 查询多条记录
10 List<user> users= userMapper.selectBatchIds(Arrays.asList(6,7));
11 users.forEach(System.out::println);
12 }
13 @Test
14 public void testSearch2(){
15 // 条件查询
16 HashMap<String,Object> map= new HashMap<>();
17 map.put("user_name","黄现强");
18 List<user> users= userMapper.selectByMap(map);
19 users.forEach(System.out::println);
20 }
删除数据
// 删除单条记录 @Test public void testDelete(){ int result= userMapper.deleteById(8L); System.out.println(result); } // 批量删除 @Test public void testDeletes(){ int result =userMapper.deleteBatchIds(Arrays.asList(6,9)); System.out.println(result); } //通过map删除 @Test public void deleteBymap(){ HashMap<String,Object> map=new HashMap<>(); map.put("user_name","萌萌"); userMapper.deleteByMap(map); }
9性能分析
配置当前环境为开发环境

在配置类中编写性能拦截器
package com.example.demo6.config; import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @EnableTransactionManagement @MapperScan("com.example.demo6.mapper") public class mybatisplusconfig { //性能分析拦截器 @Bean @Profile({"dev","test"}) public PerformanceInterceptor performanceInterceptor(){ PerformanceInterceptor performanceInterceptor=new PerformanceInterceptor(); performanceInterceptor.setFormat(true);//输出sql语句模板化 performanceInterceptor.setMaxTime(100);//最大运行时间 return performanceInterceptor; } }
测试结果

10条件查询器wrapepr
@Test public void wrapper2(){ // 条件查询器wrapper QueryWrapper<user> wrapper = new QueryWrapper<>(); wrapper.between("id",12,15);//查询条件 List<user> result= userMapper.selectList(wrapper); result.forEach(System.out::println); } }


浙公网安备 33010602011771号