Quản lý coment băng code java chuẩn
Để thực hiện chúng ta cần tạo 5 file
1. Filde giao diện view comment.js
<%-- Document : Comment Created on : Thursday, April 28, 2022, 12:31:25 AM Author : ATC SMART --%> <%@page import="atcsmart.Model.CommentModel"%> <%@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"> <% CommentModel item = request.getAttribute("item") != null ? (CommentModel) 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 Comment</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">module:</span></td><td class="update-td"><input value="<%= item != null ? item.getmodule() : ""%>" name="txtmodule" type="text" maxlength="20" id="txtmodule"><span id="error-module" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">Title:</span></td><td class="update-td"><input value="<%= item != null ? item.getTitle() : ""%>" name="txtTitle" type="text" maxlength="100" id="txtTitle"><span id="error-Title" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">starts:</span></td><td class="update-td"><input value="<%= item != null ? item.getstarts() : ""%>" name="txtstarts" type="text" maxlength="4" id="txtstarts"><span id="error-starts" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">email:</span></td><td class="update-td"><input value="<%= item != null ? item.getemail() : ""%>" name="txtemail" type="text" maxlength="50" id="txtemail"><span id="error-email" 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">Content:</span></td><td class="update-td"><input value="<%= item != null ? item.getContent() : ""%>" name="txtContent" type="text" maxlength="16" id="txtContent"><span id="error-Content" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">ip:</span></td><td class="update-td"><input value="<%= item != null ? item.getip() : ""%>" name="txtip" type="text" maxlength="150" id="txtip"><span id="error-ip" class="label-validate"></span></td></tr> <tr><td class="update-td"><span class="update-header-td">url:</span></td><td class="update-td"><input value="<%= item != null ? item.geturl() : ""%>" name="txturl" type="text" maxlength="252" id="txturl"><span id="error-url" 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.txtmodule.value === "") { document.getElementById("error-module").innerHTML = "module không được để trống!"; flag = false; } if (frm.txtTitle.value === "") { document.getElementById("error-Title").innerHTML = "Title không được để trống!"; flag = false; } if (frm.txtstarts.value === "") { document.getElementById("error-starts").innerHTML = "starts không được để trống!"; flag = false; } if (frm.txtemail.value === "") { document.getElementById("error-email").innerHTML = "email 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.txtContent.value === "") { document.getElementById("error-Content").innerHTML = "Content không được để trống!"; flag = false; } if (frm.txtip.value === "") { document.getElementById("error-ip").innerHTML = "ip không được để trống!"; flag = false; } if (frm.txturl.value === "") { document.getElementById("error-url").innerHTML = "url không được để trống!"; flag = false; } return flag; }; function clearError() { document.getElementById("error-module").innerHTML = ""; document.getElementById("error-Title").innerHTML = ""; document.getElementById("error-starts").innerHTML = ""; document.getElementById("error-email").innerHTML = ""; document.getElementById("error-parrent").innerHTML = ""; document.getElementById("error-Content").innerHTML = ""; document.getElementById("error-ip").innerHTML = ""; document.getElementById("error-url").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.txtmodule.value = ""; frm.txtTitle.value = ""; frm.txtstarts.value = ""; frm.txtemail.value = ""; frm.txtparrent.value = ""; frm.txtContent.value = ""; frm.txtip.value = ""; frm.txturl.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 Comment</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="gvwComment" 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-module" href="javascript:;" onclick="return sort(this.id, this.textContent)">module</a></th> <th scope="col"><a id="sort-Title" href="javascript:;" onclick="return sort(this.id, this.textContent)">Title</a></th> <th scope="col"><a id="sort-starts" href="javascript:;" onclick="return sort(this.id, this.textContent)">starts</a></th> <th scope="col"><a id="sort-email" href="javascript:;" onclick="return sort(this.id, this.textContent)">email</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-Content" href="javascript:;" onclick="return sort(this.id, this.textContent)">Content</a></th> <th scope="col"><a id="sort-ip" href="javascript:;" onclick="return sort(this.id, this.textContent)">ip</a></th> <th scope="col"><a id="sort-url" href="javascript:;" onclick="return sort(this.id, this.textContent)">url</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 module" type="text" onchange="return search(this.value, this.id);" id="search-module" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo Title" type="text" onchange="return search(this.value, this.id);" id="search-Title" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo starts" type="text" onchange="return search(this.value, this.id);" id="search-starts" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo email" type="text" onchange="return search(this.value, this.id);" id="search-email" 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 Content" type="text" onchange="return search(this.value, this.id);" id="search-Content" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo ip" type="text" onchange="return search(this.value, this.id);" id="search-ip" value="" /></th> <th scope="col"><input placeholder="Tìm kiếm theo url" type="text" onchange="return search(this.value, this.id);" id="search-url" value="" /></th> <th></th> </tr> <% int i = 0; for (CommentModel model : (List<CommentModel>) 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.getmodule() %></td> <td><%= model.getTitle() %></td> <td><%= model.getstarts() %></td> <td><%= model.getemail() %></td> <td><%= model.getparrent() %></td> <td><%= model.getContent() %></td> <td><%= model.getip() %></td> <td><%= model.geturl() %></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 Comment 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 CommentServlet .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 = "CommentServlet", urlPatterns = {"/admin/Comment/*"}) public class CommentServlet extends HttpServlet { private static final long serialVersionUID = 1L; private final String INDEX_PAGE = "/admin/Comment.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()) { deleteComment(request, response); } else if (cmdEdit != null && !cmdEdit.isEmpty()) { editComment(request, response); } else if (textAction != null && !textAction.isEmpty()) { updateComment(request, response); } else if (cbxSelectOne != null && cbxSelectOne.length > 0 && isDeleteMultiple != null && isDeleteMultiple.equals("true")) { deletelistComment(request, response); } List<CommentModel> listComment = getListComment(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"); listComment = sortComment(request, listComment, SortExpression, textSort); request.setAttribute("message", message); } //end sort DatabaseUtility.getInstance().getCache().put("listComment", listComment); message = new PageUtility<CommentModel>().pagingAndDisplay(request, response, listComment, 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 editComment(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", CommentDAL.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 updateComment(HttpServletRequest request, HttpServletResponse response){ try { if (!new LoginSession(request).isLogin(response)) { return; } request.setAttribute("display", "block"); CommentModel item = new CommentModel(); //item = (request.getParameter("textAction").equals("update") ? CommentDAL.selectByid(Integer.valueOf("0" + cmdEdit)).get(0) : new CommentModel()); item.setid(Integer.valueOf("0" + request.getParameter("txtid"))); item.setmodule(request.getParameter("txtmodule")); item.setTitle(request.getParameter("txtTitle")); item.setstarts(Integer.valueOf("0" + request.getParameter("txtstarts"))); item.setemail(request.getParameter("txtemail")); item.setparrent(Integer.valueOf("0" + request.getParameter("txtparrent"))); item.setContent(request.getParameter("txtContent")); item.setip(request.getParameter("txtip")); item.seturl(request.getParameter("txturl")); int count = CommentDAL.insertOrUpdate(item); if (count > 0) { request.setAttribute("display", "none"); request.setAttribute("message", count + " Comment được cập nhật!"); DatabaseUtility.getInstance().getCache().put("listComment", CommentDAL.selectAll()); } else { request.setAttribute("messageForm", "Lỗi!"); } } catch (Exception e) { editComment(request, response); request.setAttribute("messageForm", e.getMessage()); request.setAttribute("message", ""); } } private void deletelistComment(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 += CommentDAL.deleteByid(Integer.valueOf("0" + cmdDelete)); } if (count > 0) { mess = count + " Comment được xóa!"; DatabaseUtility.getInstance().getCache().put("listComment", CommentDAL.selectAll()); } else { mess = "Lỗi!"; } } catch (Exception e) { mess = e.getMessage(); } request.setAttribute("message", mess); } private void deleteComment(HttpServletRequest request, HttpServletResponse response){ String mess = ""; try { if (!new LoginSession(request).isLogin(response)) { return; } String cmdDelete = request.getParameter("cmdDelete"); int count = CommentDAL.deleteByid(Integer.valueOf("0" + cmdDelete)); if (count > 0) { mess = count + " Comment được xóa!"; DatabaseUtility.getInstance().getCache().put("listComment", CommentDAL.selectAll()); } else { mess = "Lỗi!"; } } catch (Exception e) { mess = e.getMessage(); } request.setAttribute("message", mess); } @SuppressWarnings("unchecked") private List<CommentModel> getListComment(HttpServletRequest request) throws Exception { List<CommentModel> 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 = CommentDAL.selectAll(); } else { list = CommentDAL.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 = CommentDAL.selectAll(); } else { list = CommentDAL.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<CommentModel>) DatabaseUtility.getInstance().getCache().getIfPresent("listComment"); if (list == null){ list = CommentDAL.selectAll(); } } } else { list = CommentDAL.selectAll(); } return list; } private List<CommentModel> sortComment(HttpServletRequest request, List<CommentModel> 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 CommentDAL.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 commnet DAL.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.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 CommentDAL { private CommentDAL() { } public static int insert(CommentModel item) throws Exception { CallableStatement call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_Insert (?, ?, ?, ?, ?, ?, ?, ?)}"); call.setNString("module", item.getmodule()); call.setNString("Title", item.getTitle()); call.setInt("starts", item.getstarts()); call.setNString("email", item.getemail()); call.setInt("parrent", item.getparrent()); call.setNString("Content", item.getContent()); call.setNString("ip", item.getip()); call.setNString("url", item.geturl()); return DatabaseUtility.getInstance().executeUpdate(call); } public static int update(CommentModel item) throws Exception { CallableStatement call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_Update (?, ?, ?, ?, ?, ?, ?, ?, ?)}"); call.setInt("id", item.getid()); call.setNString("module", item.getmodule()); call.setNString("Title", item.getTitle()); call.setInt("starts", item.getstarts()); call.setNString("email", item.getemail()); call.setInt("parrent", item.getparrent()); call.setNString("Content", item.getContent()); call.setNString("ip", item.getip()); call.setNString("url", item.geturl()); return DatabaseUtility.getInstance().executeUpdate(call); } public static int insertOrUpdate(CommentModel item) throws Exception { CallableStatement call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_InsertOrUpdate (?, ?, ?, ?, ?, ?, ?, ?, ?)}"); call.setInt("id", item.getid()); call.setNString("module", item.getmodule()); call.setNString("Title", item.getTitle()); call.setInt("starts", item.getstarts()); call.setNString("email", item.getemail()); call.setInt("parrent", item.getparrent()); call.setNString("Content", item.getContent()); call.setNString("ip", item.getip()); call.setNString("url", item.geturl()); return DatabaseUtility.getInstance().executeUpdate(call); } public static int deleteByid(int id) throws Exception { CallableStatement call = DatabaseUtility.getInstance().getConnectionPool().getConnection().prepareCall("{CALL Comment_DeleteByid (?)}"); call.setInt("id", id); return DatabaseUtility.getInstance().executeUpdate(call); } public static List<CommentModel> selectAll() throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<CommentModel> list = new LinkedList<CommentModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_SelectAll}"); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new CommentModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static CommentModel selectByid(int id) throws Exception { CallableStatement call = null;ResultSet rs = null; LinkedList<CommentModel> list = new LinkedList<CommentModel>(); try { call = DatabaseUtility.getInstance().getConnectionPool().getConnection().prepareCall("{CALL Comment_SelectByid (?)}"); call.setInt("id", id); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new CommentModel(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<CommentModel> selectByDynamic(String where, String orderby) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<CommentModel> list = new LinkedList<CommentModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_SelectByDynamic (?, ?)}"); call.setNString("where", where); call.setNString("orderby", orderby); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new CommentModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static List<CommentModel> sort(List<CommentModel> list, final String columnName, String orderby) { Collections.sort(list, new Comparator<CommentModel>() { @Override public int compare(CommentModel t1, CommentModel t2) { if ("id".equals(columnName)) { return Integer.compare(t1.getid(), t2.getid()); } if ("module".equals(columnName)) { return t1.getmodule().compareToIgnoreCase(t2.getmodule()); } if ("Title".equals(columnName)) { return t1.getTitle().compareToIgnoreCase(t2.getTitle()); } if ("starts".equals(columnName)) { return Integer.compare(t1.getstarts(), t2.getstarts()); } if ("email".equals(columnName)) { return t1.getemail().compareToIgnoreCase(t2.getemail()); } if ("parrent".equals(columnName)) { return Integer.compare(t1.getparrent(), t2.getparrent()); } if ("Content".equals(columnName)) { return t1.getContent().compareToIgnoreCase(t2.getContent()); } if ("ip".equals(columnName)) { return t1.getip().compareToIgnoreCase(t2.getip()); } if ("url".equals(columnName)) { return t1.geturl().compareToIgnoreCase(t2.geturl()); } return 0; } }); if ("DESC".equals(orderby.toUpperCase())) { Collections.reverse(list); } return list; } public static List<CommentModel> search(String keyword) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<CommentModel> list = new LinkedList<CommentModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_Search (?)}"); call.setNString("keyword", keyword); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new CommentModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static List<CommentModel> selectTop(int top, String where, String orderby) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<CommentModel> list = new LinkedList<CommentModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_SelectTop (?, ?, ?)}"); call.setInt("top", top); call.setNString("where", where); call.setNString("orderby", orderby); rs = DatabaseUtility.getInstance().executeQuery(call); while (rs.next()) { list.add(new CommentModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } public static List<CommentModel> paging(int page, int size, String where, String orderby) throws Exception { CallableStatement call = null; ResultSet rs = null; LinkedList<CommentModel> list = new LinkedList<CommentModel>(); try { call = DatabaseUtility.getInstance() .getConnectionPool().getConnection().prepareCall( "{CALL Comment_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 CommentModel(rs)); } } finally{ if(rs != null){ rs.close(); } if(call != null){ DatabaseUtility.getInstance().getConnectionPool().free(call.getConnection()); call.close(); } } return list; } }
4. File Commentmodel.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.Model; import java.sql.SQLException; /** * * @author Administrator */ public final class CommentModel implements java.io.Serializable { private static final long serialVersionUID = 1L; public CommentModel() { } public CommentModel(java.sql.ResultSet rs) throws SQLException { this.setid(rs.getInt("id")); this.setmodule(rs.getNString("module")); this.setTitle(rs.getNString("Title")); this.setstarts(rs.getInt("starts")); this.setemail(rs.getNString("email")); this.setparrent(rs.getInt("parrent")); this.setContent(rs.getNString("Content")); this.setip(rs.getNString("ip")); this.seturl(rs.getNString("url")); } private int _id; private String _module; private String _Title; private int _starts; private String _email; private int _parrent; private String _Content; private String _ip; private String _url; public int getid() { return _id; } public CommentModel setid(int value){ this._id = value; return this; } public String getmodule() { return _module; } public CommentModel setmodule(String value){ if (value != null && value.length() > 20){ this._module = value.substring(0, 20); } else { this._module = value; } return this; } public String getTitle() { return _Title; } public CommentModel setTitle(String value){ if (value != null && value.length() > 100){ this._Title = value.substring(0, 100); } else { this._Title = value; } return this; } public int getstarts() { return _starts; } public CommentModel setstarts(int value){ this._starts = value; return this; } public String getemail() { return _email; } public CommentModel setemail(String value){ if (value != null && value.length() > 50){ this._email = value.substring(0, 50); } else { this._email = value; } return this; } public int getparrent() { return _parrent; } public CommentModel setparrent(int value){ this._parrent = value; return this; } public String getContent() { return _Content; } public CommentModel setContent(String value){ if (value != null && value.length() > 16){ this._Content = value.substring(0, 16); } else { this._Content = value; } return this; } public String getip() { return _ip; } public CommentModel setip(String value){ if (value != null && value.length() > 150){ this._ip = value.substring(0, 150); } else { this._ip = value; } return this; } public String geturl() { return _url; } public CommentModel seturl(String value){ if (value != null && value.length() > 252){ this._url = value.substring(0, 252); } else { this._url = value; } return this; } }