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十分方便入门学习,写笔记来方便以后使用。