返回
使用MyBatisPlus实现无SQL式开发
后端
2024-01-11 04:17:25
在软件开发过程中,数据库操作是必不可少的,而MyBatisPlus作为一款优秀的Java持久层框架,以其简便、高效的特性受到广大开发者的青睐。它提供了丰富的API,可以帮助开发者轻松实现无SQL式开发,解放开发者双手,使开发过程更加高效。
-
快速入门
- 添加MyBatisPlus依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.2</version>
</dependency>
- 配置数据源
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
// ...
return dataSource;
}
}
- 编写实体类
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Integer age;
// ...
}
- 编写Mapper接口
public interface UserMapper extends BaseMapper<User> {
// ...
}
-
操作数据库
- 插入数据
User user = new User();
user.setName("张三");
user.setAge(20);
userMapper.insert(user);
- 查询数据
List<User> users = userMapper.selectList(null);
- 更新数据
User user = new User();
user.setId(1L);
user.setName("李四");
userMapper.updateById(user);
- 删除数据
userMapper.deleteById(1L);
-
条件查询
- 等于
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三");
List<User> users = userMapper.selectList(wrapper);
- 不等于
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.ne("name", "张三");
List<User> users = userMapper.selectList(wrapper);
- 大于
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.gt("age", 20);
List<User> users = userMapper.selectList(wrapper);
- 小于
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.lt("age", 20);
List<User> users = userMapper.selectList(wrapper);
- 大于等于
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.ge("age", 20);
List<User> users = userMapper.selectList(wrapper);
- 小于等于
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.le("age", 20);
List<User> users = userMapper.selectList(wrapper);
- 模糊查询
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "张三");
List<User> users = userMapper.selectList(wrapper);
- 多条件查询
Wrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "张三").and(i -> i.gt("age", 20));
List<User> users = userMapper.selectList(wrapper);
-
分页查询
- 使用PageHelper
PageHelper.startPage(1, 10);
List<User> users = userMapper.selectList(null);
- 使用MyBatisPlus自带的分页
IPage<User> page = userMapper.selectPage(new Page<>(1, 10), null);
-
其他操作
- 批量插入
List<User> users = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
User user = new User();
user.setName("张三" + i);
user.setAge(20 + i);
users.add(user);
}
userMapper.insertBatch(users);
- 批量更新
List<User> users = userMapper.selectList(null);
for (User user : users) {
user.setName(user.getName() + "_updated");
}
userMapper.updateBatchById(users);
- 批量删除
List<Long> ids = new ArrayList<>();
for (User user : users) {
ids.add(user.getId());
}
userMapper.deleteBatchIds(ids);
总结
MyBatisPlus提供了丰富的API,可以帮助开发者轻松实现无SQL式开发。本文详细介绍了MyBatisPlus的使用方法,帮助开发者快速上手。希望本文对大家有所帮助。