JAVAWebでのページングと一括削除

4967 ワード

1.ページング操作
ページ分けの方法は、表の各ページに表示されるバー数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;
	}