PageHelperを使用してページングを行うと、ページング機能を実現できますが、PageInfoにページング情報がないという問題解決
2774 ワード
最近MybatisのページングプラグインPageHelperを使ってページングを行う際に問題が発生し、ページング機能を実現できますが、作成したpageinfoにはページング情報がありません.つまりpagesize、pagenum、totalsなどはすべて0で、これらのフィールドの値を取得することができなくて、コードを見て前に書いたのと何の違いもありません
使用状況は、次のコードで示すように、入力されたパラメータが動的に入力されているだけで、返されたリストに10個のデータがあり、2ページ目のデータであるページ機能を実現することをクエリーすることができます.
しかし、作成されたpageinfoではページング情報が取得されず、コードをよく見てpojoクラスだけが異なり、他は同じで、テストされました.クエリ文が返すpojoクラスにいくつかのフィールドのsetメソッドでデータベースがクエリされているためであることがわかりました(ここでクエリー操作を行うのは、これらのフィールドが外部キーであり、対応するレコードのidを取得するためであるが、名前が必要であるため、setメソッドではクエリーされたidに基づいてそのレコードの名前を取得し、原因を発見した後、このステップを直接sql文でデータベースから対応する名前をクエリーしてもこの機能を実現できるように変更する)ため、ページングが発生する情報の紛失は,クエリ文を削除することでページング情報を取得できる.
ページングクラスの使用方法の説明
使用状況は、次のコードで示すように、入力されたパラメータが動的に入力されているだけで、返されたリストに10個のデータがあり、2ページ目のデータであるページ機能を実現することをクエリーすることができます.
しかし、作成されたpageinfoではページング情報が取得されず、コードをよく見てpojoクラスだけが異なり、他は同じで、テストされました.クエリ文が返すpojoクラスにいくつかのフィールドのsetメソッドでデータベースがクエリされているためであることがわかりました(ここでクエリー操作を行うのは、これらのフィールドが外部キーであり、対応するレコードのidを取得するためであるが、名前が必要であるため、setメソッドではクエリーされたidに基づいてそのレコードの名前を取得し、原因を発見した後、このステップを直接sql文でデータベースから対応する名前をクエリーしてもこの機能を実現できるように変更する)ため、ページングが発生する情報の紛失は,クエリ文を削除することでページング情報を取得できる.
ページングクラスの使用方法の説明
//
public Page selectList() {
PageHelper.startPage(2, 10);
Page list = basedataMapper.selectList(bean);
PageInfo 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;
}
}