最近在使用Mybatis的分页插件PageHelper进行分页时遇到了一个问题,能实现分页功能,但是创建的pageinfo中没有分页的信息。就是pagesize,pagenum,totals等都为0,获取不到这些字段值,看了代码和之前写的没有什么不同
使用情况就是下面代码中演示的这种,只是传入的参数是动态的传入的,可以查询实现分页功能,即返回的list中是10条数据,也是第二页的数据。
但创建的pageinfo中却获取不到分页信息,仔细查看代码后返现只有pojo类不同,其他都是相同的,后来经过测试,发现是因为该查询语句返回的pojo类中有几个字段的set方法中又对数据库进行了查询操作(
这里又进行查询操作是因为这几个字段是外键,获取的是对应的记录的id,但我们需要的是名称,所以在set方法中又根据查询出的id获取该记录的名称,发现原因后把这个步骤改成直接用sql语句从数据库中查询出对应的名称也可以实现该功能
),所以才导致了分页信息的丢失,把查询语句去掉就能获取到分页信息了。
分页类的使用演示
//分页代码演示
public Page<B_basedataBean> selectList() {
PageHelper.startPage(2, 10);
Page<B_basedataBean> list = basedataMapper.selectList(bean);
PageInfo<B_basedataBean> pageInfo = new PageInfo<>(list);
}
引发问题的pojo类
//对应的pojo类,删掉了多余字段,只留下了导致分页信息丢失的字段
@Component
public class B_propertiesBean {
private static B_propertiesBean propbean;
private int thesaurus;
private String thesaurusname = "";
private int reference;
private String referencename = "";
@Autowired
private BasedataService basedataService;
@PostConstruct //通过@PostConstruct实现初始化bean之前进行的操作
public void init() {
propbean = this;
propbean.basedataService = this.basedataService;
// 初使化时将已静态化的testService实例化
}
public B_propertiesBean() {
}
public int getThesaurus() {
return thesaurus;
}
public void setThesaurus(int thesaurus) {
this.thesaurus = thesaurus;
//设置该外键字段id时获取到对应的名称,设置到对应的字段上
//这里进行的查询语句导致上面分页信息的丢失
if (thesaurus > 0) {
String bdname = propbean.basedataService.selectbaseBdnameById(thesaurus);
this.setThesaurusname(bdname == null ? "" : bdname);
}
}
public int getReference() {
return reference;
}
public void setReference(int reference) {
this.reference = reference;
if (reference > 0) {
String bdname = propbean.basedataService.selectbaseBdnameById(reference);
this.setReferencename(bdname == null ? "" : bdname);
}
}
public String getThesaurusname() {
return thesaurusname;
}
public void setThesaurusname(String thesaurusname) {
this.thesaurusname = thesaurusname;
}
public String getReferencename() {
return referencename;
}
public void setReferencename(String referencename) {
this.referencename = referencename;
}
}
安利一门Java超级好课!
扫码下单输优惠码【csdnfxzs】再减5元,比官网还便宜!
版权声明:本文为junxiao_chen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。