MySqlページをめくる検索機能を実現する
まず、なぜ改ページで照会するのかを明確にします。データが膨大なため、検索がすべてページに表示されることは不可能です。すべてページに表示されると、検索速度が遅い場合もあります。だから、改ページで照会して解決しました。②性能の最適化など(他の問題は補足を歓迎します)の問題。
ページ別の検索も本当のページと偽のページに分けられます。
真の改ページ:データベースに基づいて検出されたデータを直接改ページして表示します。利点はデータベースのデータを変えることで、検索結果に影響がありません。短所は速度が遅いことです。
偽のページ:すべてのデータが検索されたデータをリストセットキャッシュに入れ、表現層方法が実行を呼び出す。データをセットにしてメモリに入れたため、速度が速いという欠点がありますが、データベースが変更された後に不一致が発生するということです。
二つのページにはそれぞれ長所と短所があります。
ここで紹介するのは本当に改ページする方法です。
1、JavaBeanを建立する
上記の方法では、改ページでは10のデータが表示されていますが、計算分析は以下の通りです。
データ総条数:total Count
各ページの表示本数:PageSize
総ページ数:totalPage
インデックス開始
現在のページ数currPage
ページ全体の計算式:
totalCount%pageSize
残りが0なら――>totalPage=total Count/pageSize
残りが0でなければ――>totalPage=totalCount/PageSize+1
結論:totalPage=(total Count+pageSize-1)/pageSize
締め括りをつける
以上は小编でご绍介したMySqlページをめくる検索机能を実现しました。皆さんに何かご质问があれば、メッセージをください。小编はすぐに皆さんに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
本文があなたのためになると思ったら、転載を歓迎します。出所を明記してください。ありがとうございます。
ページ別の検索も本当のページと偽のページに分けられます。
真の改ページ:データベースに基づいて検出されたデータを直接改ページして表示します。利点はデータベースのデータを変えることで、検索結果に影響がありません。短所は速度が遅いことです。
偽のページ:すべてのデータが検索されたデータをリストセットキャッシュに入れ、表現層方法が実行を呼び出す。データをセットにしてメモリに入れたため、速度が速いという欠点がありますが、データベースが変更された後に不一致が発生するということです。
二つのページにはそれぞれ長所と短所があります。
ここで紹介するのは本当に改ページする方法です。
1、JavaBeanを建立する
import java.io.Serializable;
/**
*
* @author
*
*/
public class UserBean implements Serializable {
/** ID*/
private int id;
/** */
private String name;
public UserBean() {
}
public UserBean(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "UserBean [id=" + id + ", name=" + name + "]";
}
}
2、改ページデータを見せるためのJavaBean
/**
* JavaBean
* @author
*
*/
import java.util.List;
public class PagenationBean {
/** */
private Integer currPage;
/** */
private Integer totalPage;
/** table */
private List<UserBean> dataList;
public Integer getCurrPage() {
return currPage;
}
public void setCurrPage(Integer currPage) {
this.currPage = currPage;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public List<StuBean> getDataList() {
return dataList;
}
public void setDataList(List<StuBean> dataList) {
this.dataList = dataList;
}
}
3、ダオ層実現類
@Override
public int getTotalCount() { //
this.setConnection();
int totalCount = 0;
try {
ps = con.prepareStatement("select count(*) from t_user");
rs = ps.executeQuery();
if (rs.next()) {
totalCount = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
return totalCount;
}
@Override
public List<UserBean> getUserListByStartIndex(int StartIndex) { // limit 10
List<UserBean> userList = new ArrayList<>();
UserBean userBean= null;
this.setConnection();
int totalCount = 0;
try {
ps = con.prepareStatement("select * from t_user limit ? , 10");
ps.setInt(1, StartIndex);
rs = ps.executeQuery();
while (rs.next()) {
userBean= new StuBean();
userBean.setId(rs.getInt("id"));
userBean.setName(rs.getString("name"));
stuList.add(userBean);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeConnection();
}
return userList;
}
4、サービス層実現類
private IUserDao isd = new UserDaoImpl();
@Override
public int getTotalPage() {
//
int totalCount = isd.getTotalCount();
//
int totalPage = (totalCount + 10 -1)/10;
return totalPage;
}
@Override
public List<UserBean> getUserListByCurrPage(int currPage) {
//
int StartIndex = (currPage - 1) * 10;
List<UserBean> userList = isd.getStuListByStartIndex(StartIndex);
return userList;
}
5、調べたデータをページに入れて展示すればいいです。上記の方法では、改ページでは10のデータが表示されていますが、計算分析は以下の通りです。
データ総条数:total Count
各ページの表示本数:PageSize
総ページ数:totalPage
インデックス開始
現在のページ数currPage
ページ全体の計算式:
totalCount%pageSize
残りが0なら――>totalPage=total Count/pageSize
残りが0でなければ――>totalPage=totalCount/PageSize+1
結論:totalPage=(total Count+pageSize-1)/pageSize
締め括りをつける
以上は小编でご绍介したMySqlページをめくる検索机能を実现しました。皆さんに何かご质问があれば、メッセージをください。小编はすぐに皆さんに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
本文があなたのためになると思ったら、転載を歓迎します。出所を明記してください。ありがとうございます。