public class EmployeeF04BLogic {
@Autowired
private EmployeeMapper employeeMapper;
public String execute() {
Page<Object> objects = PageHelper.startPage(2, 1);
objects.setDialectClass("mysql"); //我设置了这个
List<Integer> integers = employeeMapper.EmployeeF04SQL02();
System.out.println(integers);
return "成功";
}
}
注意我上面的objects.setDialectClass("mysql");
一般也不会有这种写法,但是注意的是,这样写可能会报错,当你
<property name="helperDialect" value="mysql"/>时
将会报nullpointExcetion
查看源码发现
只有这两个条件下才会设置properties
当我们objects.setDialectClass("mysql"); 看看分页拦截器是如果执行
1.先看要不要分页
2.因为我设置了分页,page不可能为空,所以走非空逻辑
3.我设置了dialectClass,所以走不为空的逻辑,而且properties为空的
4.properties为空所以报错了
5.解决方案
- 去掉<property name="helperDialect" value="mysql"/>,让它自己设置
2.设置<property name="autoRuntimeDialect" value="true"/>