javaexample使⽤_关于通⽤MapperExample使⽤记录
环境准备项⽬整合 通⽤ mapper 和 pagehelper 插件,这部分以前有写过,略
需要集成 mybatis 的 generator 插件,⽅便⾃动⽣成 实体类和 mapper 类,还可以⽣成xml,不过⼀般我们都不⽤ xml
baMapper 需要继承 ExampleMapper不过只需要继承 Mapper就可以了,因为 Mapper已经继承了 ExampleMapper
Example 的⽤法
⾸先需要说明⼀点 ,和 Example 使⽤相同的还有 Condition 类 该类继承⾃ Example,使⽤⽅法和 Example 完全⼀样,只是为了避免语义有歧义重命名的⼀个类,这⾥我们都⽤ Example 来说明
创建 Example :
Example example = new Example(XXX.class);
其中构造⽅法为⽣成的 model 实体类,还有 2 个构造⽅法
/
**
* 带exists参数的构造⽅法,默认notNull为fal,允许为空
*
* @param entityClass
* @param exists - true时,如果字段不存在就抛出异常,fal时,如果不存在就不使⽤该字段的条件高考分数线什么时候出来
*/
public Example(Class> entityClass, boolean exists) {
...
}
/**
杭州英语培训
* 带exists参数的构造⽅法
*
* @param entityClass
* @param exists - true时,如果字段不存在就抛出异常,fal时,如果不存在就不使⽤该字段的条件
* @param notNull - true时,如果值为空,就会抛出异常,fal时,如果为空就不使⽤该字段的条件
*/
public Example(Class> entityClass, boolean exists, boolean notNull) {
...
}
然后可以对 example 的实体类的单表进⾏查询了
Example example = new Example(XXX.class);
<().andLessThan("id", 41);
List list = mapper.lectByExample(example);
以上查询的条件是,查询 id ⼤于 100 并且⼩于 151 或者 id ⼩于 41 的记录bornfree
还可以写成 sql 的⽅式:
Example example = new Example(XXX.class);
// andCondition() ⽅法可以叠加使⽤,像这样2019年12月四级答案
andCondition() 有2中使⽤⽅法:
andCondition(String condition) : ⼿写条件,例如 “length(name)<5”
andCondition(String condition, Object value) : ⼿写左边条件,右边⽤value值,例如 “length(name)=” “5”orCondition() 也是类似的
动漫学习网
example ⾥有很多 mysql 常⽤的⽅法,使⽤⽅法和 elasticarch 的 java api 很类似,这⾥列举⼏个
Set lectColumns : 查询的字段
Set excludeColumns : 排除的查询字段
Map propertyMap : 属性和列对应
andAllEqualTo : 将此对象的所有字段参数作为相等查询条件,如果字段为 null,则为 is null
andGreaterThan : and 条件 ⼤于
andBetween : and 条件 between
andEqualTo : 将此对象的不为空的字段参数作为相等查询条件 还有⼀种有 value 参数的是 = 条件andGreaterThanOrEqualTo : and 条件 》=
还有⼀些⼀看就知道意思的
andIn
andIsNotNull
andIsNull
andLessThan
andLessThanOrEqualTo
andNotLike
上⾯是以 and 条件举例 ,or的条件也是⼀样的
vsc
集成分页功能
我们知道 PageHelper.startPage(pageNum, pageSize); 可以对 后⾯的⼀个 lect 进⾏分页
那么我们可以对 example 进⾏⼀个分页查询的封装
// 在baMapper ⾥封装⼀个接⼝
PageInfo lectPageByExample(int pageNum, int pageSize, Object example);
grandprix
//这样实现上⾯的接⼝
dresden
@Override
public PageInfo lectPageByExample(int pageNum, int pageSize, Object example) {
jianlin
PageHelper.startPage(pageNum, pageSize);
List list = lectByExample(example);
return new PageInfo<>(list);
}
//java 8 的lamda ⽤法startup是什么意思
@Override
public PageInfo lectPageByExample(int pageNum, int pageSize, Object example) {
return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(()->baMapper.lectByExample(example)); }
留⾔