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;
}
}

 

 

 

 

nguyen tran

Leave a Reply

Your email address will not be published. Required fields are marked *