MyBatis-plus个人使用笔记


前言

用过MyBatis-Plus后,发现实在太方便了,特此来记录一下,入门的用法。


一、在springboot项目中引入依赖

父类依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.0</version>
    <relativePath/>
</parent>

引入相关依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>Latest Version</version>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

二、配置文件

1、在.properties配置中配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
spring.datasource.username=root(用户名)
spring.datasource.password=password(密码)
mybatis-plus.type-aliases-package=com.example.entity

2.在启动类中添加@@MapperScan注解

@SpringBootApplication
@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
public class Application {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(Application.class, args);
    }
    
}

三、实体类以及mapper类编写

1、实体类

使用Lombook使代码简洁
若不使用,可以重写get、set、toSting、hashcod和equals方法

//这里的字段名需要和数据库中,字段数、名一致
@Data
@TableName("tb_user")//这里填库里的表名
public class User {
    
    
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

2、mapper类编写

public interface UserMapper extends BaseMapper<User> {
    
    

}

四、测试类

1、简单的读取所有到List

@SpringBootTest
public class SampleTest {
    
    

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect() {
    
    
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
		for(int i = 0; i < list.size(); i++) {
    
    
    		System.out.println(list.get(i));
		}
		//↑看文档学到的代替语句
		//userList.forEach(System.out::println);
		
    }
}

五、常用查询

1、简单查询

// 查询测试类
    @Test
    void testQueryWrapper() {
    
    
        //创建对象,泛型里加上实体对象
        QueryWrapper<User> wrapperUser = new QueryWrapper<>();
        // 设置查询的条件
        // ge表示 >= , 这里就是查询age字段,大于10的数据
        wrapperUser.ge("age", 10);
        // 调用查询方法中,传入wrapper对象
        List<User> users = userMapper.selectList(wrapperUser);
        System.out.println(users);
    }
	wrapperUser.ge("age",10);// 	age >= 10
	wrapperUser.gt("age", 10);//	age > 10
	wrapperUser.le("age", 10);//	age <= 10
	wrapperUser.lt("age", 10);//	age < 10
	wrapperUser.isNull("age");//	age == null
	wrapperUser.isNotNull("age");// age != null
	wrapperUser.eq("age", 10); //   age == 10
	wrapperUser.ne("age", 10);//	age != 10
	wrapperUser.between("age",10,20);//   10<=age<=20
	wrapperUser.notBetween("age",10,20);//age <= 10 || age >=20
	

2、多条件查询

方法一、用.allEq();

查询(id == 1 && name == "紫妍“ && age == 18)

	@Test
    void testQueryWrapper() {
    
    
        QueryWrapper<User> wrapperUser = new QueryWrapper<>();
        Map<String, Object> map = new HashMap<>();
        map.put("id", 1);
        map.put("name", "紫妍");
        map.put("age", 18);
        wrapperUser.allEq(map);
        List<User> users = userMapper.selectList(wrapperUser);
        System.out.println(users);
    }

方法二、直接在后面加.eq

这里默认.and()连接,即且的意思

@Test
    void testQueryWrapper() {
    
    
        //创建对象,泛型里加上实体对象
        QueryWrapper<User> wrapperUser = new QueryWrapper<>();
        wrapperUser.eq("id",1 )
                   .eq("name", "紫妍")
                   .eq("id", 18);
        List<User> users = userMapper.selectList(wrapperUser);
        System.out.println(users);
    }

方法三、用.or()或.and()连接

查询(id == 1 || name == "紫妍“ || age == 18)

@Test
    void testQueryWrapper() {
        //创建对象,泛型里加上实体对象
        QueryWrapper<User> wrapperUser = new QueryWrapper<>();
        wrapperUser.eq("id",1) 
        			.or()
                    .eq("name", "紫妍")
                    .or()
                    .eq("id", 18);
        List<User> users = userMapper.selectList(wrapperUser);
        System.out.println(users);
    }

方法四、嵌套.or()和.and()

@Test
    void testQueryWrapper() {
    
    
        //创建对象,泛型里加上实体对象
        QueryWrapper<User> wrapperUser = new QueryWrapper<>();
        wrapperUser.eq("age", 18)
                   .or(
                           i -> i.eq("name", "紫妍")
                                   .or()
                                   .eq("id", 1)
                   );
        List<User> users = userMapper.selectList(wrapperUser);
        System.out.println(users);

    }

方法五、只查询指定字段

@Test
    void testQueryWrapper() {
    
    
        //创建对象,泛型里加上实体对象
        QueryWrapper<User> wrapperUser = new QueryWrapper<>();
        wrapperUser.select("id", "name", "age");
        List<User> users = userMapper.selectList(wrapperUser);
        System.out.println(users);
    }

总结

对于入门来说,MyBatis-plus十分方便入门学习,写笔记来方便以后使用。

猜你喜欢

转载自blog.csdn.net/qq_51603875/article/details/124905700