mybatis-plus学习笔记

使用mybatis-plus需要一些配置

mybatis配置

xml中配置:

<!--mybatisplus起步依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>
<!--MySQL提供的JDBC驱动包,用于在Java应用程序中连接MySQL数据库-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

yml中配置

#@SpringBootApplication -——》启动所包含的@EnableAutoConfiguration 自动扫描yml进行设置
#配置数据源
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.227.128:3306/mp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
    driver-class-name: com.mysql.cj.jdbc.Driver

配置结束后建立实体类

实体类:主要用于封装数据并提供对数据的访问和操作方法

@Data                    //可选
@Builder                 //可选
@TableName("user")       //对应表的名字,实体类的类名(转成小写后)和数据库表名相同时,可以不指定该注解
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
    private Long managerId;
    private Date createTime;
}

在mapper层的操作,定义一个操作这个表的接口

传入实体类User,BaseMapper会自动生成crud等常用方法

public interface UserMapper extends BaseMapper<User> {

}

在建立启动类的时候加入@MapperScan(com.lsr.mapper)注解扫描启动类的文件

扫描后用private UserMapper usermapper可能会标红,但是不影响,跳过ideal检测即可,如果直接在每个Mapper接口加@Mapper注解就不会标红,但是太麻烦没必要,直接跳过ideal检测

mybatis-plus生成的mapper的使用如下

插入数据

public void test01(){
    User user = User.builder() //用lombok包中的builder方法来创建实例更方便
        .id(1234l)             //但需要在User实体类上加@Builder注解
        .name("lsr")
        .age(18)
        .email("1234@qq.com")
        .managerId(1235l)
        .build();

    userMapper.insert(user);  //insert方法需要传入一个实例
}

查询数据

userMapper.selectById()
需要传入的id实现了Serialzable接口
image-20250919193421155

主键集合查找

  //通过主键的集合来查找
  public void test01(){
  List<Long> longs = Arrays.asList(1088250446457389058l, 1234l);
  List<User> users = userMapper.selectBatchIds(longs);
  }
  //通过传入一个Map来查询,map的key为表的字段名,value为表的字段值
  public void test01(){
  HashMap<String, Object> hashMap = new HashMap<>();
  hashMap.put("name","lsr");
  List<User> users = userMapper.selectByMap(hashMap);
  }

条件构造器

  //通过selectMaps可返回自己想要的字段,而不是一个user对象
  public void test01(){
  QueryWrapper<User> wrapper = new QueryWrapper<>();
  wrapper.select("id","name");
  wrapper.eq("id",1234l);
  List<Map<String, Object>> mapList = userMapper.selectMaps(wrapper);
  System.out.println(mapList);
  }
posted @ 2025-09-19 20:33  Auous  阅读(16)  评论(0)    收藏  举报