MybatisPuls学习日志
控制台打印日志:
mybatis-plus:
configuration:
log-impl:org.appche.ibatis.logging.stdout.StdOutImpl
逻辑删除:
在entriy 添加字段deleted字段,在上面加上@TableLogic注解
在yml 配置文件中添加配置
global-config:
db-config:
logic-not-delete-value: 0 (没有删除)
logic-delete-value: 1(删除)
逻辑删除后再查询不出逻辑删除的数据。
查询:
QueryWrapper wrapper = new QueryWrapper<>();
//eq等于 name="小孩"这个字段的所有的数据
wrapper.eq("name","小孩");
userMapper.selectList(wrapper);
Map<String, Object> map = new HashMap<>();
//放在一个map集合里面 既要满足name=小明也要age=13
map.put("name","小明");
map.put("age",13);
wrapper.allEq(map);
userMapper.selectList(wrapper);
//lt 小于
wrapper.lt("age",3);
//gt 大于
wrapper.gt("age",14);
//不等于
wrapper.ne("age",15);
//大于等于
wrapper.ge("age",56);
//小于等于
wrapper.le("age",63);
//模糊查询
wrapper.like("name","小");
//like '%小' 以小字结尾
wrapper.likeLeft("namr","小");
//以小开头的 like 小%
wrapper.likeRight("name","小");
//insql
wrapper.inSql("id","select id from user where id<10");
wrapper.inSql("age","select * from user where age>3");
userMapper.selectList(wrapper);
//升序
wrapper.orderByAsc("age");
//降序
wrapper.orderByDesc("age");
//追加
wrapper.having("id >8");
//通过主键查询
userMapper.selectById(7);
//根据ID 批量查询
userMapper.selectBatchIds(Arrays.asList(7,8,9));
map.put("name",7);
//只能等值查询 name=7 逻辑查询只能使用 QueryWrapper
List<User> users1 = userMapper.selectByMap(map);
//统计数量
wrapper.gt("age",1);
Integer integer = userMapper.selectCount(wrapper);
//把查询的结果封装刀map 集合里面
wrapper.le("age",100);
userMapper.selectMaps(wrapper);
分页:
需要添加一个配置:
@Configuration
public class MyBatisPlusConfig {
@Bean
public PaginationInnerInterceptor paginationInnerInterceptor()
{
return new PaginationInnerInterceptor();
}
}
//分页查询 第一个参数是当前页 第二个参数是每一页的有多少数据
Page<User> page=new Page<>(1,2);
Page<User> userPage = userMapper.selectPage(page, null);
userPage.getSize();
//total
long total = userPage.getTotal();
//每一页的数据
List<User> records = userPage.getRecords();
/把结果封装到一个map 集合
Page<Map<String,Object>> objectPage = new Page<>();
userMapper.selectMapsPage(objectPage,null);
//查询单个数据
User user = userMapper.selectOne(null);
自定义sql
@Data
public class UserVo {
private Long id;
private String name;
private String mtp;
private String remark;
}
@Select("")
List<UserVo> productList(Integer id);
如果数据的字段和vo的字段不一样 可以在@Select("")给字段起一个新的名字。
//删除
//根据条件构造器删除
userMapper.delete(wrapper);
//根据ID删除
userMapper.deleteById(1);
//批量的删除
userMapper.deleteBatchIds(Arrays.asList(1,2,3));
//把条件封装刀一个map根据整个删除
map.put("age",13);
map.put("name","lisi");
userMapper.deleteByMap(map);
/添加
userMapper.insert(new User());
//修改
//查询出来的数据
User user1 = userMapper.selectOne(null);
//这个wrapper 是条件 比如where id=1 修改这条记录
userMapper.update(user1,wrapper);
//根据这个对象的ID修改 名字修改成jiang
User user2 = new User();
user.setId(100L);
user2.setName("jiang");
userMapper.updateById(user2);