前面简单的介绍了tk.mybatis自带sql语句,发现Example也是一个很有趣的东西,就常用的方法来记录一下
public List<UserPo> selectTest(UserPo userPo) {
Example example = new Example(UserPo.class);//实例化对象
example.orderBy("name");//根据某字段进行排序 默认正序
example.setOrderByClause("'name' desc");//可设置正序or反序
example.createCriteria();//创建一个Criteria ---------
example.createCriteria().andEqualTo("name","pt0001");//增加查询条件 name=‘pt0001’
example.createCriteria().andNotEqualTo("name","pt0001");//增加查询条件 name<>‘pt0001’
example.createCriteria().andLessThan("age",20);//增加条件 age<20
example.createCriteria().andLessThanOrEqualTo("age",20);//增加条件 age<=20
example.createCriteria().andGreaterThan("age",20); //增加条件 age>20
example.createCriteria().andGreaterThanOrEqualTo("age",20); //增加条件 age>=20
example.createCriteria().andLike("name","%pt%");//增加条件 name包含pt的模糊查询
example.createCriteria().andNotLike("name","%pt%");//增加条件 name不包含pt的模糊查询
example.createCriteria().andBetween("age",1,20);//增加查询条件 age在1~20之间
example.createCriteria().andNotBetween("age",1,20);//增加查询条件 age不在1~20之间
List<String> list = new ArrayList<>();
list.add("pt001");
list.add("pt002");
example.createCriteria().andIn("name",list);//增加查询条件 name in('pt001','pt002')
example.createCriteria().andNotIn("name",list);//增加查询条件 name not in('pt001','pt002')
//上面的create Criteria()只能执行最后一个,不能叠加
example.and(example.createCriteria());//想叠加查询
example.or(example.createCriteria()); //最后增加 or 的条件查询Criteria
example.or().orIn("name",list);//可以直接在后面拼接,上面的and().也是一样的,
example.clear();//清除之前的example内容
example.setDistinct(true);//去除重复,true为不重复记录
//==================20200709==========================
example.createCriteria().andCondition("name = id");//这里把sql直接拼接到条件后面
example.createCriteria().orCondition("name = id");//and/or 两种拼接条件
return userMapperRepo.selectByExample(example);
}