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);
       
    }

}

 

 

 

posted @ 2023-04-02 17:32  人生海海-  阅读(33)  评论(0)    收藏  举报