JAVAWebでのページングと一括削除
4967 ワード
1.ページング操作
ページ分けの方法は、表の各ページに表示されるバー数pageSizeを指定してから、ユーザーが選択したページ数currentPageを取得し、mysqlのlimitと2つのパラメータで対応するデータを取得する方法があります.
(1)操作を容易にするために,ここではpageクラスを記述する.
(2)JSPページメインコード
bookShow.jsp
(3)サーブレットプライマリコード
GetBook.do
(4)エンティティークラス対応インタフェースの関連コード
BookDaoImp.JAvaのgetPagingBooks()
2、一括操作
(1)JSPページで
テーブルに列を追加します.列の各行は複数選択ボックスで、各複数選択ボックスの値は対応する行のIDです.たとえば、次のようになります.
削除ボタンさくじょぼたん:一括削除イベントのトリガー
JSコード:選択されたすべての複数選択ボックスを取得し、対応する値(すなわちID)を1つのJS配列に追加し、AJAXによってバックグラウンドにデータを転送して一括削除します.
(2)特定のデータベース操作においてバインディングによる一括削除
ページ分けの方法は、表の各ページに表示されるバー数pageSizeを指定してから、ユーザーが選択したページ数currentPageを取得し、mysqlのlimitと2つのパラメータで対応するデータを取得する方法があります.
(1)操作を容易にするために,ここではpageクラスを記述する.
import java.util.List;
public class Page {
private int currentPage;//
private int totalPage;//
private int count;//
private List books;//
private int totalCount;//
// Getters Settesrs
}
(2)JSPページメインコード
bookShow.jsp
のページ
トップページ
${i}
${i}
のページ
のページ
(3)サーブレットプライマリコード
GetBook.do
String getBookParam = request.getParameter("getBookParam");
System.out.println(" getBookParam:" + getBookParam);
//
if ("getAllBook".equals(getBookParam)) {
int currentPage = 1;
int pageSize = 5;
String value = request.getParameter("page");
if(value!=null&&!"".equals(value)){
currentPage = Integer.parseInt(value);
}
page = bookService.getPagingBooks(currentPage, pageSize);
request.setAttribute("page", page);
request.getRequestDispatcher("bookShow.jsp?page="+currentPage).forward(request, response);
}
(4)エンティティークラス対応インタフェースの関連コード
BookDaoImp.JAvaのgetPagingBooks()
@Override
public List getPagingBooks(int currentPage, int pageSize) {
conn = DataBaseHelper.getConn();
ResultSetHandler> rsh = new BeanListHandler(Book.class);
String sql = "SELECT * FROM book LIMIT ?,?;";
try {
return run.query(conn, sql, rsh, (currentPage - 1) * pageSize, pageSize);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
DbUtils.close(conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
2、一括操作
(1)JSPページで
テーブルに列を追加します.列の各行は複数選択ボックスで、各複数選択ボックスの値は対応する行のIDです.たとえば、次のようになります.
削除ボタンさくじょぼたん:一括削除イベントのトリガー
JSコード:選択されたすべての複数選択ボックスを取得し、対応する値(すなわちID)を1つのJS配列に追加し、AJAXによってバックグラウンドにデータを転送して一括削除します.
//
function batchDelete(){
var checkedNum = $("input[name='subcheck']:checked").length;
if(checkedNum==0){
alert(" !");
return false;
}
if(confirm(" ?")){
var checkedList = new Array();
$("input[name='subcheck']:checked").each(function(){
checkedList.push($(this).val());
});
var url = "BookController.do";
var data={"operate":"batchDelete","delitems":checkedList.toString()};
//alert("delitems:"+checkedList.toString());
// ,success(),complete(),error()
// jQuery3.0 , jqXHR.done(),jqXHR.fail(),jqXHR.always()
//success(),
var jqxhr = $.post(url,data,success);
jqxhr.fail(function(xhr,error,throwerror){
art.dialog.tips(' !');
});
}
}
(2)特定のデータベース操作においてバインディングによる一括削除
//
@Override
public boolean batchDelete(String[] bookIdStr) {
conn = DataBaseHelper.getConn();
String sql = "DELETE FROM book WHERE bookId=?";
try {
PreparedStatement pstat = conn.prepareStatement(sql);
for (int i = 0; i < bookIdStr.length; i++) {
int bookId = Integer.parseInt(bookIdStr[i]);
pstat.setInt(1, bookId);
pstat.addBatch();
}
return pstat.executeBatch() != null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
DbUtils.close(conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}