CRUD接口
在上一篇文章 MyBatis-Plus 快速起步 中,我们简单的尝试了查询功能,除此以外还有很多,例如:
//创建一个用户并插入
@Test
public void testInsert() {
User user = new User();
user.setAge(21);
user.setEmail("12345@qq.com");
user.setName("周xx");
user.setId(8L);
user.setRemark("我是一条备注"); //@TableField(exist = false) 放在实体类的属性上,不参与数据库表的映射
int row = userMapper.insert(user);
System.out.println("影响的行数为 : " + row);
}
//通过id查询用户
@Test
public void testSelectById() {
User user = new User();
user = userMapper.selectById(3);
System.out.println(user);
}
//通过多个id查询多个用户
@Test
public void testSelectByIds() {
List<Integer> longs = Arrays.asList(2, 3, 4);
List<User> users = userMapper.selectBatchIds(longs);
users.forEach(System.out::println);
}
//通过map查询用户
@Test
public void testSelectByMap() {
Map<String, Object> map = new HashMap<>();
map.put("name", "周xx");
map.put("age", 21);
List<User> users = userMapper.selectByMap(map);
users.forEach(System.out::println);
}
还有大量的接口可以在这里看到:CRUD接口
条件构造器
上面提到过Wrapper,它就是条件构造器
用法如下:
@Test
public void testSelcectByWrapper() {
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
//名字中包含‘周’且年龄小于30
userQueryWrapper.like("name", "周").lt("age", 30);
//名字中含有周,你年龄大于等于20,且小于等于30,并且email不为空
userQueryWrapper.like("name", "周").between("age", 20, 30).isNotNull("email");
//姓周,或者年龄大于25,按年龄降序,按id升序排序
userQueryWrapper.likeRight("name", "周").or().ge("age", 25)
.orderByDesc("age").orderByAsc("id");
List<User> users = userMapper.selectList(userQueryWrapper);
users.forEach(System.out::println);
}
以上都是冰山一角,你可以在 条件构造器 中查看更多的使用方法
其实我个人不是很赞成这么使用,主要还是得看团队是否能接受,对于大多数人来说最直观的还是SQL语句。
Q.E.D.