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

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

 

 

 

nguyen tran

Leave a Reply

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