1.Wrapper相关操作
Descending 降序
Ascending 升序
QueryWrapper<User> objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.orderByDesc("age");//根据年龄降序 objectQueryWrapper.orderByAsc("id");//根据id升序 List<User> users = userMapper.selectList(objectQueryWrapper); users.forEach(System.out::println);//查询 //----------------------------------------------------------------------> QueryWrapper<User> userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.isNull("password");//判断密码是否为空 int delete = userMapper.delete(userQueryWrapper);//删除 //----------------------------------------------------------------------> //UPDATE user_t SET name=?, age=? WHERE (age <= ? AND name LIKE ? OR password IS NULL) QueryWrapper<User> userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.le("age",20) .like("name","刘") .or() .isNull("password"); User user = new User(); user.setName("刘家雨"); user.setAge(22); boolean update = userService.update(user, userQueryWrapper); System.out.println(update);//修改
mybatis-plus中Lambda表达式优先执行!
1.1QueryWrapper的select(Wrapper 封面)
@Test
public void test6(){
QueryWrapper<User> user = new QueryWrapper<>();
user.select("name","age");
Map<String, Object> map = userService.getMap(user);
for (Map.Entry<String,Object> m :map.entrySet()){
Object value = m.getValue();
String key = m.getKey();
System.out.println(key+value);
}
}
1.2UpdateWrapper
//UPDATE user_t SET name=?,password=? WHERE (name LIKE ? AND (age > ? OR password IS NULL))
UpdateWrapper<User> user = new UpdateWrapper<>();
user.like("name","林")
.and(i->i.gt("age",30).or().isNull("password"));
user.set("name","凌达雄").set("password","999lin");
boolean update = userService.update(null, user);
System.out.println(update);
2.MyBatis-Plus的分页操作
2.1创建配置类
@Configuration
@MapperScan("com.xie.boot.mapper")
public class MyBatisPlus {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor m = new MybatisPlusInterceptor();
m.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return m;
}
}
2.1.3测试
//SELECT id,name,age,password FROM user_t LIMIT ?
Page page = new Page(2,3);
Page page1 = userService.page(page);
System.out.println(page1);
System.out.println(page1.countId());
System.out.println(page1.hasPrevious());
System.out.println(page1.getCurrent());
System.out.println(page1.getTotal());
System.out.println(page1.getRecords());
//------------->
Preparing: SELECT id,name,age,password FROM user_t LIMIT ?,?
==> Parameters: 3(Long), 3(Long)
<== Columns: id, name, age, password
<== Row: 5, 蛮少, 35, man321
<== Row: 6, 汪洋, 25, man321
<== Row: 1510203010318385173, 刘家雨, 22, liu
<== Total: 3
com.baomidou.mybatisplus.extension.plugins.pagination.Page@337a6d30
null
true
2
6
[User(id=5, name=蛮少, age=35, password=man321), User(id=6, name=汪洋, age=25, password=man321), User(id=1510203010318385173, name=刘家雨, age=22, password=liu)]
2.1.4自定义
//自定义sql语句
@Select("select * from user_t where age > #{age}")
Page<User> pageL(@Param("page") Page<User> page, @Param("age") Integer age);
//测试
@Test
public void test2(){
Page page = new Page(1,3);
userMapper.pageL(page,30);
}
//结果
Preparing: select * from user_t where age > ? LIMIT ?
==> Parameters: 30(Integer), 3(Long)
<== Columns: id, name, age, password
<== Row: 2, 凌达雄, 33, 999lin
<== Row: 5, 蛮少, 35, man321
<== Total: 2