更新時間:2022-09-05 11:02:31 來源:動力節點 瀏覽2557次
首先在dao層寫一個普通的查詢語句:
private String findPage = "SELECT * from bt_assayitemstable where 1=1 ";
在語句后面加上where1=1,是為了后面更好的拼接條件進行查詢,避免在查詢的時候直接拼接成
where and … 而報語法錯誤,下面是實現的方法:
public List<BtAssayItems> findPage(String assayItemsNumber,
String assayItemsName, String chineseName, int start, int PageSize) {
List<BtAssayItems> list = null;
con = DbUtil.getConnection();
try {
StringBuffer sql = new StringBuffer();
if(Tools.isNotNull(assayItemsNumber)){
sql.append("and AssayItemsNumber like '%"+ assayItemsNumber + "%'");
}
if(Tools.isNotNull(assayItemsName)){
sql.append("and AssayItemsName like '%"+ assayItemsName + "%'");
}
if(Tools.isNotNull(chineseName)){
sql.append("and ChineseName like '%"+ chineseName + "%'");
}
sql.append(" LIMIT ?,?");
findPage+=sql;
ps = con.prepareStatement(findPage);
ps.setInt(1, start);
ps.setInt(2, PageSize);
rs = ps.executeQuery();
list = DbUtil.getResult(rs, BtAssayItems.class);
} catch (SQLException e) {
e.printStackTrace();
}finally{
DbUtil.close(con, ps, rs);
}
return list;
}
然后再去service包內寫它接口與實現類,這里就不多敘述,servlet那邊通過
request.getParameter接收jsp頁面傳過來的值,如果是int要通過Integer轉換為int型。
我這里使用了JQ.bsgrid進行分頁,
下面是對應servlet層的代碼:
private void getlist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String strpageSize = request.getParameter("pageSize");
String strcurPage = request.getParameter("curPage");
IAssayItemsService assayItemsService = new AssayItemsServiceImpl();
String assayItemsNumber = request.getParameter("assayItemsNumber");
String assayItemsName = request.getParameter("assayItemsName");
String chineseName = request.getParameter("chineseName");
Bsgrid<BtAssayItems> bsgrid = new Bsgrid<>();
if (Tools.isNum(strcurPage) && Tools.isNum(strpageSize)) {
int pageSize = Integer.parseInt(strpageSize);
int curPage = Integer.parseInt(strcurPage);
int start = (curPage - 1) * pageSize;
List<BtAssayItems> list = assayItemsService.findPage(assayItemsNumber, assayItemsName, chineseName, start, pageSize);
int totalRows = assayItemsService.getTotalRow(assayItemsNumber, assayItemsName, chineseName);
bsgrid.setCurPage(curPage);
bsgrid.setTotalRows(totalRows);
bsgrid.setSuccess(true);
bsgrid.setData(list);
} else {
bsgrid.setSuccess(false);
}
JSONObject jsonObject = JSONObject.fromObject(bsgrid);
PrintWriter out = response.getWriter();
out.write(jsonObject.toString());
out.close();
}
下面是jsp頁面對應的js代碼
function querys(){
var assayItemsNumber = $("#qassayItemsNumber").val();
if (assayItemsNumber == undefined || assayItemsNumber=="") {
assayItemsNumber = "";
}
var assayItemsName = $("#qassayItemsName").val();
if (assayItemsName == undefined || assayItemsName=="") {
assayItemsNames = "";
}
var chineseName = $("#qchineseName").val();
if (chineseName == undefined || chineseName=="") {
chineseName = "";
} tbAssayItem.search({ assayItemsNumber:assayItemsNumber,assayItemsName:
assayItemsName,chineseName:chineseName});
}
然后再bsgrid初始化表格時調用這個方法,和在點擊查詢按鈕的時候調用該方法即可實現多條件查詢。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習