Hướng dẫn code chức năng quản lý thêm sửa xóa category bằng java

Để thực hiện chúng ta cần tạo 5 file
1. Filde giao diện view category.js
<%-- Document : category Created on : Thursday, April 28, 2022, 12:24:31 AM Author : ATC SMART --%> <%@page import="atcsmart.Model.categoryModel"%> <%@page import="java.util.List"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@include file="/public/templates/backend/layout/header.jsp" %> <div id="pnlUpdate" style="display: none"> <% categoryModel item = request.getAttribute("item") != null ? (categoryModel) request.getAttribute("item") : null; %> <form autocomplete="off" id="form-update" name="form-update" method="post"> <input type="hidden" name="cmdEditError" value="<%= request.getParameter("cmdEdit") == null ? "" : request.getParameter("cmdEdit") %>" /> <span class="title-table">Nhập thông tin category</span> <%@include file="/public/templates/backend/layout/update-action.jsp" %> <table class="update-table" cellspacing="0" cellpadding="0"><tbody> <tr style="display: none;"><td class="update-td"><span class="update-header-td">id:</span></td><td class="update-td"><input value="<%= item != null ? item.getid() : ""%>" readonly name="txtid" type="text" maxlength="4" id="txtid"><span id="error-id" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">name:</span></td><td class="update-td"><input value="<%= item != null ? item.getname() : ""%>" name="txtname" type="text" maxlength="200" id="txtname"><span id="error-name" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">sort:</span></td><td class="update-td"><input value="<%= item != null ? item.getsort() : ""%>" name="txtsort" type="text" maxlength="4" id="txtsort"><span id="error-sort" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">parrent:</span></td><td class="update-td"><input value="<%= item != null ? item.getparrent() : ""%>" name="txtparrent" type="text" maxlength="4" id="txtparrent"><span id="error-parrent" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">status:</span></td><td class="update-td"><input value="<%= item != null ? item.getstatus() : ""%>" name="txtstatus" type="text" maxlength="1" id="txtstatus"><span id="error-status" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">images:</span></td><td class="update-td"><input value="<%= item != null ? item.getimages() : ""%>" name="txtimages" type="text" maxlength="250" id="txtimages"><span id="error-images" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">lang:</span></td><td class="update-td"><input value="<%= item != null ? item.getlang() : ""%>" name="txtlang" type="text" maxlength="10" id="txtlang"><span id="error-lang" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">keyword:</span></td><td class="update-td"><input value="<%= item != null ? item.getkeyword() : ""%>" name="txtkeyword" type="text" maxlength="1000" id="txtkeyword"><span id="error-keyword" class="label-validate"></span></td></tr> </tbody></table> </form> <br /> <script type="text/javascript"> var frm = document.getElementById("form-update"); document.getElementById("btnUpdateAction").onclick = function() { var flag = true; clearError(); if (frm.txtname.value === "") { document.getElementById("error-name").innerHTML = "name không được để trống!"; flag = false; } if (frm.txtsort.value === "") { document.getElementById("error-sort").innerHTML = "sort không được để trống!"; flag = false; } if (frm.txtparrent.value === "") { document.getElementById("error-parrent").innerHTML = "parrent không được để trống!"; flag = false; } if (frm.txtstatus.value === "") { document.getElementById("error-status").innerHTML = "status không được để trống!"; flag = false; } if (frm.txtimages.value === "") { document.getElementById("error-images").innerHTML = "images không được để trống!"; flag = false; } if (frm.txtlang.value === "") { document.getElementById("error-lang").innerHTML = "lang không được để trống!"; flag = false; } if (frm.txtkeyword.value === "") { document.getElementById("error-keyword").innerHTML = "keyword không được để trống!"; flag = false; } return flag; }; function clearError() { document.getElementById("error-name").innerHTML = ""; document.getElementById("error-sort").innerHTML = ""; document.getElementById("error-parrent").innerHTML = ""; document.getElementById("error-status").innerHTML = ""; document.getElementById("error-images").innerHTML = ""; document.getElementById("error-lang").innerHTML = ""; document.getElementById("error-keyword").innerHTML = ""; } function openForm() { clearError(); document.getElementById("labelmessageForm").textContent = ""; document.getElementById("pnlUpdate").style.display = "block"; document.getElementById("textAction").value = "addnew"; document.getElementById("textPageUpdate").value = "999999999"; frm.txtid.value = ""; frm.txtname.value = ""; frm.txtsort.value = ""; frm.txtparrent.value = ""; frm.txtstatus.value = ""; frm.txtimages.value = ""; frm.txtlang.value = ""; frm.txtkeyword.value = ""; return false; } </script> </div> <div id="update"> <div id="pnlTable"> <form method="post" id="form-table" name="form-table"> <span class="title-table">Danh sách category</span> <span id="labelMessage" class="labelMessage"><%= request.getAttribute("message") %></span> <%@include file="/public/templates/backend/layout/action.jsp" %> <div> <table cellspacing="0" cellpadding="3" rules="cols" id="gvwcategory" class="table-display"> <tbody><tr class="table-header"> <th scope="col" class="cbxSelectAll"> <input id="cbxSelectAll" type="checkbox" name="cbxSelectAll"> </th> <th scope="col"><a id="sort-id" href="javascript:;" onclick="return sort(this.id, this.textContent)">id</a></th> <th scope="col"><a id="sort-name" href="javascript:;" onclick="return sort(this.id, this.textContent)">name</a></th> <th scope="col"><a id="sort-sort" href="javascript:;" onclick="return sort(this.id, this.textContent)">sort</a></th> <th scope="col"><a id="sort-parrent" href="javascript:;" onclick="return sort(this.id, this.textContent)">parrent</a></th> <th scope="col"><a id="sort-status" href="javascript:;" onclick="return sort(this.id, this.textContent)">status</a></th> <th scope="col"><a id="sort-images" href="javascript:;" onclick="return sort(this.id, this.textContent)">images</a></th> <th scope="col"><a id="sort-lang" href="javascript:;" onclick="return sort(this.id, this.textContent)">lang</a></th> <th scope="col"><a id="sort-keyword" href="javascript:;" onclick="return sort(this.id, this.textContent)">keyword</a></th><th scope="col">Thao tác</th> </tr> <tr class="table-search-one"> <th></th> <th scope="col"><input placeholder="Tìm kiếm theo id" type="text" onchange="return search(this.value, this.id);" id="search-id" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo name" type="text" onchange="return search(this.value, this.id);" id="search-name" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo sort" type="text" onchange="return search(this.value, this.id);" id="search-sort" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo parrent" type="text" onchange="return search(this.value, this.id);" id="search-parrent" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo status" type="text" onchange="return search(this.value, this.id);" id="search-status" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo images" type="text" onchange="return search(this.value, this.id);" id="search-images" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo lang" type="text" onchange="return search(this.value, this.id);" id="search-lang" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo keyword" type="text" onchange="return search(this.value, this.id);" id="search-keyword" value="" /></th> <th></th> </tr> <% int i = 0; for (categoryModel model : (List<categoryModel>) request.getAttribute("list")) { %> <tr class="table-row-<%= (i++ % 2 == 0 ? "one" : "two")%>"> <td> <span class="cbxSelectOne"><input value="<%= model.getid() %>" type="checkbox" name="cbxSelectOne"></span> </td> <td><span class="table-row-primary"><%= model.getid() %></span></td> <td><%= model.getname() %></td> <td><%= model.getsort() %></td> <td><%= model.getparrent() %></td> <td><%= model.getstatus() %></td> <td><%= model.getimages() %></td> <td><%= model.getlang() %></td> <td><%= model.getkeyword() %></td> <td><input onclick="editForm('<%= model.getid() %>')" type="image" title="Edit" src="/public/templates/backend/img/admin/edit.png" alt="Edit"> <input type="image" title="Delete" src="/public/templates/backend/img/admin/delete.png" alt="Delete" onclick="return deleteRow('Bạn có chắc muốn xóa category này?', '<%= model.getid() %>')"> </td> </tr> <% }%> </tbody></table> </div> <%@include file="/public/templates/backend/layout/paging.jsp" %> </form> </div> </div> <%@include file="/public/templates/backend/layout/footer.jsp" %>
2. File Servlet .java
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package atcsmart.Servlet; import javax.servlet.annotation.WebServlet; import java.io.*; import java.util.*; import atcsmart.Utility.*; import javax.servlet.*; import javax.servlet.http.*; import atcsmart.DAL.*; import atcsmart.Model.*; /** * * @author Administrator */ @WebServlet(name = "categoryServlet", urlPatterns = {"/admin/category/*"}) public class categoryServlet extends HttpServlet { private static final long serialVersionUID = 1L; private final String INDEX_PAGE = "/admin/category.jsp"; private final String ERROR_PAGE = "/error.jsp"; private final String IMAGE_SORT_DESC = "/public/templates/backend/img/admin/DESC.gif"; private final String IMAGE_SORT_ASC = "/public/templates/backend/img/admin/ASC.gif"; private String message = ""; /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); try { if (!new LoginSession(request).isLogin(response)) { return; } String textSort = ""; String cmdDelete = request.getParameter("cmdDelete"); String[] cbxSelectOne = request.getParameterValues("cbxSelectOne"); String isDeleteMultiple = request.getParameter("isDeleteMultiple"); String cmdEdit = request.getParameter("cmdEdit"); String textAction = request.getParameter("textAction"); if (cmdDelete != null && !cmdDelete.isEmpty()) { deletecategory(request, response); } else if (cmdEdit != null && !cmdEdit.isEmpty()) { editcategory(request, response); } else if (textAction != null && !textAction.isEmpty()) { updatecategory(request, response); } else if (cbxSelectOne != null && cbxSelectOne.length > 0 && isDeleteMultiple != null && isDeleteMultiple.equals("true")) { deletelistcategory(request, response); } List<categoryModel> listcategory = getListcategory(request); //start sort String SortExpression = request.getParameter("SortExpression"); if (SortExpression != null && !SortExpression.isEmpty()) { textSort = (request.getParameter("textSort") == null ? "ASC" : request.getParameter("textSort")); textSort = (textSort.equals("ASC") ? "DESC" : "ASC"); listcategory = sortcategory(request, listcategory, SortExpression, textSort); request.setAttribute("message", message); } //end sort DatabaseUtility.getInstance().getCache().put("listcategory", listcategory); message = new PageUtility<categoryModel>().pagingAndDisplay(request, response, listcategory, textSort); if (request.getAttribute("message") == null) { request.setAttribute("message", message); } RequestDispatcher dispath = getServletContext().getRequestDispatcher(INDEX_PAGE); dispath.forward(request, response); } catch (Exception ex) { PrintWriter out = response.getWriter(); out.println("Tìm thấy lỗi như sau :"+ex.getMessage()); // response.sendRedirect(ERROR_PAGE); } } private void editcategory(HttpServletRequest request, HttpServletResponse response){ String mess = ""; StringBuilder str = new StringBuilder(); try { if (!new LoginSession(request).isLogin(response)) { return; } request.setAttribute("display", "block"); str.append("document.getElementById(\"textAction\").value = \"update\";"); String cmdEdit = request.getParameter("cmdEditError") == null ? request.getParameter("cmdEdit") : request.getParameter("cmdEditError"); request.setAttribute("item", categoryDAL.selectByid(Integer.valueOf("0" + cmdEdit))); str.append("document.getElementById('textPageUpdate').value = '").append(request.getParameter("textPage")).append("';"); } catch (Exception e) { mess = e.getMessage(); } request.setAttribute("cmdEdit", str.toString()); request.setAttribute("message", mess); } private void updatecategory(HttpServletRequest request, HttpServletResponse response){ try { if (!new LoginSession(request).isLogin(response)) { return; } request.setAttribute("display", "block"); categoryModel item = new categoryModel(); //item = (request.getParameter("textAction").equals("update") ? categoryDAL.selectByid(Integer.valueOf("0" + cmdEdit)).get(0) : new categoryModel()); item.setid(Integer.valueOf("0" + request.getParameter("txtid"))); item.setname(request.getParameter("txtname")); item.setsort(Integer.valueOf("0" + request.getParameter("txtsort"))); item.setparrent(Integer.valueOf("0" + request.getParameter("txtparrent"))); item.setstatus(Boolean.valueOf(request.getParameter("txtstatus"))); item.setimages(request.getParameter("txtimages")); item.setlang(request.getParameter("txtlang")); item.setkeyword(request.getParameter("txtkeyword")); int count = categoryDAL.insertOrUpdate(item); if (count > 0) { request.setAttribute("display", "none"); request.setAttribute("message", count + " category được cập nhật!"); DatabaseUtility.getInstance().getCache().put("listcategory", categoryDAL.selectAll()); } else { request.setAttribute("messageForm", "Lỗi!"); } } catch (Exception e) { editcategory(request, response); request.setAttribute("messageForm", e.getMessage()); request.setAttribute("message", ""); } } private void deletelistcategory(HttpServletRequest request, HttpServletResponse response){ String mess = ""; try { if (!new LoginSession(request).isLogin(response)) { return; } String[] cbxSelectOne = request.getParameterValues("cbxSelectOne"); int count = 0; for (String cmdDelete : cbxSelectOne) { count += categoryDAL.deleteByid(Integer.valueOf("0" + cmdDelete)); } if (count > 0) { mess = count + " category được xóa!"; DatabaseUtility.getInstance().getCache().put("listcategory", categoryDAL.selectAll()); } else { mess = "Lỗi!"; } } catch (Exception e) { mess = e.getMessage(); } request.setAttribute("message", mess); } private void deletecategory(HttpServletRequest request, HttpServletResponse response){ String mess = ""; try { if (!new LoginSession(request).isLogin(response)) { return; } String cmdDelete = request.getParameter("cmdDelete"); int count = categoryDAL.deleteByid(Integer.valueOf("0" + cmdDelete)); if (count > 0) { mess = count + " category được xóa!"; DatabaseUtility.getInstance().getCache().put("listcategory", categoryDAL.selectAll()); } else { mess = "Lỗi!"; } } catch (Exception e) { mess = e.getMessage(); } request.setAttribute("message", mess); } @SuppressWarnings("unchecked") private List<categoryModel> getListcategory(HttpServletRequest request) throws Exception { List<categoryModel> list = null; String searchOneColumn = request.getParameter("searchOneColumn"); if (request.getParameterNames().hasMoreElements()) { if (searchOneColumn != null && !searchOneColumn.isEmpty()) { String searchOneValue = request.getParameter("searchOneValue"); if (searchOneValue == null || searchOneValue.isEmpty()) { list = categoryDAL.selectAll(); } else { list = categoryDAL.selectByDynamic(searchOneColumn + " = N'" + searchOneValue + "'", searchOneColumn); request.setAttribute("message", "Thông báo: Tìm kiếm theo " + request.getParameter("searchOneColumnName") + " \"" + searchOneValue + "\""); } } else if ((request.getParameter("imgbtnSearch.x") != null && request.getParameter("imgbtnSearch.y") != null) || (request.getParameter("imgbtnSearch_x") != null && request.getParameter("imgbtnSearch_y") != null)) { if (request.getParameter("textSearch") == null || request.getParameter("textSearch").isEmpty()) { list = categoryDAL.selectAll(); } else { list = categoryDAL.search(request.getParameter("textSearch")); request.setAttribute("message", "Thông báo: Tìm kiếm với từ khóa \"" + request.getParameter("textSearch") + "\""); } } else { list = (List<categoryModel>) DatabaseUtility.getInstance().getCache().getIfPresent("listcategory"); if (list == null){ list = categoryDAL.selectAll(); } } } else { list = categoryDAL.selectAll(); } return list; } private List<categoryModel> sortcategory(HttpServletRequest request, List<categoryModel> list, String SortExpression, String textSort) { message = "Thông báo: \"" + request.getParameter("HeaderText") + "\" sắp xếp " + (textSort.equals("ASC") ? "tăng dần" : "giảm dần"); String img = "<input class=\"sort-img\" onclick=\"return false;\" type=\"image\" src=\"" + IMAGE_SORT_DESC + "\">"; img = (textSort.equals("ASC") ? "<input class=\"sort-img\" onclick=\"return false;\" type=\"image\" src=\"" + IMAGE_SORT_ASC + "\">" : img); request.setAttribute("imgSort", img); return categoryDAL.sort(list, SortExpression, textSort); } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> }
3. file thao tác dữ liệu DAL
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package atcsmart.DAL; import java.sql.*; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.List; import atcsmart.Utility.DatabaseUtility; import atcsmart.Model.*; /** * * @author Administrator */ public final class categoryDAL { private categoryDAL() { } public static int insert(categoryModel item) throws Exception { CallableStatement call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_Insert (?, ?, ?, ?, ?, ?, ?)}"); call.setNString("name", item.getname()); call.setInt("sort", item.getsort()); call.setInt("parrent", item.getparrent()); call.setBoolean("status", item.getstatus()); call.setNString("images", item.getimages()); call.setNString("lang", item.getlang()); call.setNString("keyword", item.getkeyword()); return DatabaseUtility.getInstance().executeUpdate(call); } public static int update(categoryModel item) throws Exception { CallableStatement call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_Update (?, ?, ?, ?, ?, ?, ?, ?)}"); call.setInt("id", item.getid()); call.setNString("name", item.getname()); call.setInt("sort", item.getsort()); call.setInt("parrent", item.getparrent()); call.setBoolean("status", item.getstatus()); call.setNString("images", item.getimages()); call.setNString("lang", item.getlang()); call.setNString("keyword", item.getkeyword()); return DatabaseUtility.getInstance().executeUpdate(call); } public static int insertOrUpdate(categoryModel item) throws Exception { CallableStatement call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_InsertOrUpdate (?, ?, ?, ?, ?, ?, ?, ?)}"); call.setInt("id", item.getid()); call.setNString("name", item.getname()); call.setInt("sort", item.getsort()); call.setInt("parrent", item.getparrent()); call.setBoolean("status", item.getstatus()); call.setNString("images", item.getimages()); call.setNString("lang", item.getlang()); call.setNString("keyword", item.getkeyword()); return DatabaseUtility.getInstance().executeUpdate(call); } public static int deleteByid(int id) throws Exception { CallableStatement call = DatabaseUtility.getInstance().getConnectionPool().getConnection().prepareCall("{CALL category_DeleteByid (?)}"); call.setInt("id", id); return DatabaseUtility.getInstance().executeUpdate(call); } public static List<categoryModel> selectAll() throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<categoryModel> list = new LinkedList<categoryModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_SelectAll}"); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new categoryModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static categoryModel selectByid(int id) throws Exception { CallableStatement call = null;ResultSet rs = null; LinkedList<categoryModel> list = new LinkedList<categoryModel>(); try { call = DatabaseUtility.getInstance().getConnectionPool().getConnection().prepareCall("{CALL category_SelectByid (?)}"); call.setInt("id", id); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new categoryModel(rs)); }}finally{ if(rs != null){ rs.close();} if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection());call.close();}} return list.size() > 0 ? list.get(0) : null; } public static List<categoryModel> selectByDynamic(String where, String orderby) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<categoryModel> list = new LinkedList<categoryModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_SelectByDynamic (?, ?)}"); call.setNString("where", where); call.setNString("orderby", orderby); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new categoryModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static List<categoryModel> sort(List<categoryModel> list, final String columnName, String orderby) { Collections.sort(list, new Comparator<categoryModel>() { @Override public int compare(categoryModel t1, categoryModel t2) { if ("id".equals(columnName)) { return Integer.compare(t1.getid(), t2.getid()); } if ("name".equals(columnName)) { return t1.getname().compareToIgnoreCase(t2.getname()); } if ("sort".equals(columnName)) { return Integer.compare(t1.getsort(), t2.getsort()); } if ("parrent".equals(columnName)) { return Integer.compare(t1.getparrent(), t2.getparrent()); } if ("status".equals(columnName)) { return Boolean.compare(t1.getstatus(), t2.getstatus()); } if ("images".equals(columnName)) { return t1.getimages().compareToIgnoreCase(t2.getimages()); } if ("lang".equals(columnName)) { return t1.getlang().compareToIgnoreCase(t2.getlang()); } if ("keyword".equals(columnName)) { return t1.getkeyword().compareToIgnoreCase(t2.getkeyword()); } return 0; } }); if ("DESC".equals(orderby.toUpperCase())) { Collections.reverse(list); } return list; } public static List<categoryModel> search(String keyword) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<categoryModel> list = new LinkedList<categoryModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_Search (?)}"); call.setNString("keyword", keyword); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new categoryModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static List<categoryModel> selectTop(int top, String where, String orderby) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<categoryModel> list = new LinkedList<categoryModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_SelectTop (?, ?, ?)}"); call.setInt("top", top); call.setNString("where", where); call.setNString("orderby", orderby); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new categoryModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static List<categoryModel> paging(int page, int size, String where, String orderby) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<categoryModel> list = new LinkedList<categoryModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL category_Paging (?, ?, ?, ?)}"); call.setInt("page", page); call.setInt("size", size); call.setNString("where", where); call.setNString("orderby", orderby); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new categoryModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } }
4. File model
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package atcsmart.Model; import java.sql.SQLException; /** * * @author Administrator */ public final class categoryModel implements java.io.Serializable { private static final long serialVersionUID = 1L; public categoryModel() { } public categoryModel(java.sql.ResultSet rs) throws SQLException { this.setid(rs.getInt("id")); this.setname(rs.getNString("name")); this.setsort(rs.getInt("sort")); this.setparrent(rs.getInt("parrent")); this.setstatus(rs.getBoolean("status")); this.setimages(rs.getNString("images")); this.setlang(rs.getNString("lang")); this.setkeyword(rs.getNString("keyword")); } private int _id; private String _name; private int _sort; private int _parrent; private Boolean _status; private String _images; private String _lang; private String _keyword; public int getid() { return _id; } public categoryModel setid(int value){ this._id = value; return this; } public String getname() { return _name; } public categoryModel setname(String value){ if (value != null && value.length() > 200){ this._name = value.substring(0, 200); } else { this._name = value; } return this; } public int getsort() { return _sort; } public categoryModel setsort(int value){ this._sort = value; return this; } public int getparrent() { return _parrent; } public categoryModel setparrent(int value){ this._parrent = value; return this; } public Boolean getstatus() { return _status; } public categoryModel setstatus(Boolean value){ this._status = value; return this; } public String getimages() { return _images; } public categoryModel setimages(String value){ if (value != null && value.length() > 250){ this._images = value.substring(0, 250); } else { this._images = value; } return this; } public String getlang() { return _lang; } public categoryModel setlang(String value){ if (value != null && value.length() > 10){ this._lang = value.substring(0, 10); } else { this._lang = value; } return this; } public String getkeyword() { return _keyword; } public categoryModel setkeyword(String value){ if (value != null && value.length() > 1000){ this._keyword = value.substring(0, 1000); } else { this._keyword = value; } return this; } }