servs.EditRecord.java Source code

Java tutorial

Introduction

Here is the source code for servs.EditRecord.java

Source

/*
 * 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 servs;

import bean.Email;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageInputStream;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

@MultipartConfig(location = "/tmp", fileSizeThreshold = 1024 * 1024, maxFileSize = 1024 * 1024
        * 5, maxRequestSize = 1024 * 1024 * 5 * 5)
public class EditRecord extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String param = request.getParameter("action");

        switch (param) {
        case "Update": {
            try {
                //=== to update record table
                int recordid = Integer.parseInt(request.getParameter("recordid"));
                String recordname = request.getParameter("recordname");
                String desc = request.getParameter("desc");
                String tags = request.getParameter("tags");

                //=== to update address table
                int addid = Integer.parseInt(request.getParameter("addid"));
                String street = request.getParameter("street1");
                String area = request.getParameter("area");
                String landmark = request.getParameter("landmark");
                if (landmark == null) {
                    landmark = "";
                }
                String city = request.getParameter("city");
                String state = request.getParameter("state");
                String country = request.getParameter("country");
                String zip = request.getParameter("zip");
                String contact1 = request.getParameter("contact1");
                if (contact1 == null) {
                    contact1 = "";
                }
                String contact2 = request.getParameter("contact2");
                if (contact2 == null) {
                    contact2 = "";
                }
                String contact3 = request.getParameter("contact3");
                if (contact3 == null) {
                    contact3 = "";
                }

                //=== to update Email table
                String email1 = request.getParameter("email1");
                String emailid1 = request.getParameter("emailid1");
                String email2 = request.getParameter("email2");
                String emailid2 = request.getParameter("emailid2");
                String email3 = request.getParameter("email3");
                String emailid3 = request.getParameter("emailid3");
                String website = request.getParameter("website");

                String webid = request.getParameter("webid");

                System.out.println(email1 + emailid1);
                System.out.println(email2 + emailid2);
                System.out.println(email3 + emailid3);
                System.out.println(website + webid);

                int count = 0;

                if (email1 != null) {
                    count = count + 1;
                }

                if (email2 != null) {
                    count = count + 1;
                }
                if (email3 != null) {
                    count = count + 1;
                }

                System.out.println("THIS IS COUNT" + count);

                //=== to Start Connection
                Configuration cfg = new Configuration();
                SessionFactory sessionFactory = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
                Session s = sessionFactory.openSession();
                Transaction transaction = s.beginTransaction();

                //=== UPDATE RECORD TBL

                String recsql = "UPDATE bean.Record" + " SET recname=:name," + " description=:descp,"
                        + " tags=:tags " + " WHERE recid=:id";

                Query q1 = s.createQuery(recsql);
                q1.setParameter("name", recordname);
                q1.setParameter("descp", desc);
                q1.setParameter("tags", tags);
                q1.setParameter("id", recordid);

                String addsql = "UPDATE bean.Address" + " SET street=:street," + " area=:area,"
                        + " landmark=:landmark," + " city=:city, " + " state=:state," + " zipcode=:zipcode,"
                        + " fone1=:fone1," + " fone2=:fone2," + " fone3=:fone3 " + " WHERE addid=:id";

                Query q2 = s.createQuery(addsql);
                q2.setParameter("street", street);
                q2.setParameter("area", area);
                q2.setParameter("landmark", landmark);
                q2.setParameter("city", city);
                q2.setParameter("state", state);
                q2.setParameter("zipcode", zip);
                q2.setParameter("fone1", contact1);
                q2.setParameter("fone2", contact2);
                q2.setParameter("fone3", contact3);
                q2.setParameter("id", addid);

                if (website != null) {
                    String emailsql1 = "UPDATE bean.Email" + " SET emailadd = :emailadd" + " WHERE emailID = :id";
                    Query q3 = s.createQuery(emailsql1);
                    q3.setParameter("emailadd", website);
                    q3.setParameter("id", webid);
                    int result = q3.executeUpdate();
                    q3.executeUpdate();
                }

                switch (count) {
                case 1: {
                    String emailsql1 = "UPDATE bean.Email" + " SET emailadd = :emailadd" + " WHERE emailID = :id";
                    Query q3 = s.createQuery(emailsql1);
                    q3.setParameter("emailadd", email1);
                    q3.setParameter("id", emailid1);
                    int result = q3.executeUpdate();
                    break;
                }
                case 2: {
                    String emailsql1 = "UPDATE bean.Email" + " SET emailadd = :emailadd" + " WHERE emailID = :id";
                    Query q3 = s.createQuery(emailsql1);
                    q3.setParameter("emailadd", email1);
                    q3.setParameter("id", emailid1);

                    String emailsql2 = "UPDATE bean.Email" + " SET emailadd = :emailadd" + " WHERE emailID = :id";
                    Query q4 = s.createQuery(emailsql2);
                    q4.setParameter("emailadd", email2);
                    q4.setParameter("id", emailid2);

                    q4.executeUpdate();
                    q3.executeUpdate();
                    break;
                }
                case 3: {
                    String emailsql3 = "UPDATE bean.Email" + " SET emailadd = :emailadd" + " WHERE emailID = :id";
                    Query q3 = s.createQuery(emailsql3);
                    q3.setParameter("emailadd", email1);
                    q3.setParameter("id", emailid1);

                    String emailsql2 = "UPDATE bean.Email" + " SET emailadd = :emailadd" + " WHERE emailID = :id";
                    Query q4 = s.createQuery(emailsql2);
                    q4.setParameter("emailadd", email2);
                    q4.setParameter("id", emailid2);

                    String emailsql4 = "UPDATE bean.Email" + " SET emailadd = :emailadd" + " WHERE emailID = :id";
                    Query q5 = s.createQuery(emailsql4);
                    q5.setParameter("emailadd", email3);
                    q5.setParameter("id", emailid3);

                    q5.executeUpdate();
                    q4.executeUpdate();
                    q3.executeUpdate();
                    break;
                }
                }

                int result1 = q1.executeUpdate();
                int result2 = q2.executeUpdate();
                if (result1 > 0 && result2 > 0) {
                    System.out.println("Update successfuly");
                }

                transaction.commit();
                s.close();

                //==== if success then redirect to success page
                request.getSession(false).setAttribute("info", "Your Record is Updated Successfully");
                response.sendRedirect("AdminPanel/AdminPanelSuccess.jsp");

            } catch (Exception ex) {
                System.out.println("Exception is HERE::::" + ex.getMessage());
            }

            break;
        }

        case "Update Category": {
            int recordid = Integer.parseInt(request.getSession(false).getAttribute("recid").toString());
            int categoryid = Integer.parseInt(request.getParameter("categorySelect"));
            try {
                Configuration cfg = new Configuration();
                SessionFactory sessionFactory = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
                Session s = sessionFactory.openSession();
                Transaction transaction = s.beginTransaction();
                String sql = "UPDATE bean.Record" + " SET catid=:catid" + " WHERE recid=:id";

                Query query = s.createQuery(sql);
                query.setParameter("catid", categoryid);
                query.setParameter("id", recordid);

                int result = query.executeUpdate();

                if (result > 0) {
                    System.out.println("Update successful");
                }

                transaction.commit();
                s.close();

                //==== if success then redirect to success page
                request.getSession(false).setAttribute("info", "Your Record is Updated Successfully");
                response.sendRedirect("AdminPanel/AdminPanelSuccess.jsp");
            } catch (Exception ex) {
                System.out.println(ex);
            }
            break;
        }

        case "Submit Email/Website": {
            int addid = Integer.parseInt(request.getSession(false).getAttribute("addressid").toString());
            bean.Email e = new Email();
            e.setEmailadd(request.getParameter("email"));
            try {
                Configuration cfg = new Configuration();
                SessionFactory sessionFactory = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
                Session s = sessionFactory.openSession();
                Transaction transaction = s.beginTransaction();

            } catch (Exception ex) {
                System.out.println(ex);
            }
            break;
        }
        case "Delete": {
            try {
                Configuration cfg = new Configuration();
                SessionFactory sessionFactory = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
                Session s = sessionFactory.openSession();
                Transaction transaction = s.beginTransaction();
                int addid = Integer.parseInt(request.getSession(false).getAttribute("addressid").toString());

                String sql = "DELETE FROM bean.Address" + " WHERE addid=:id";

                Query query = s.createQuery(sql);
                query.setParameter("id", addid);

                int result = query.executeUpdate();

                if (result > 0) {
                    System.out.println("Delete successful");
                }

                transaction.commit();
                s.close();

                //===== Response=====
                request.getSession(false).setAttribute("info", "Your Record is Deleted Successfully");
                response.sendRedirect("AdminPanel/AdminPanelSuccess.jsp");

            } catch (Exception ex) {
                System.out.println(ex.getMessage());
            }

            break;
        }

        case "Submit Image": {
            int recordid = Integer.parseInt(request.getSession(false).getAttribute("recid").toString());
            int addid = Integer.parseInt(request.getSession(false).getAttribute("addressid").toString());
            String path = "";
            String pathfilename = "";

            //=== saving image to RecordPhotos folder

            long filesize = request.getPart("recimage").getSize();

            if (filesize > 0) {
                Part part = request.getPart("recimage");
                InputStream is = part.getInputStream();
                ImageInputStream iis = ImageIO.createImageInputStream(is);
                BufferedImage bimg = ImageIO.read(iis);

                Image scaledimg = null;

                if (bimg.getHeight() > 350 || bimg.getWidth() > 500) {
                    System.out.println("Scaled");

                    //===ratio fr 800x600
                    double ratio = 1.8;
                    int newwidth = (int) (bimg.getWidth() / ratio);
                    int newheight = (int) (bimg.getHeight() / ratio);

                    //=== This function returns an Image object of desired size or ratio
                    scaledimg = bimg.getScaledInstance(newwidth, newheight, Image.SCALE_SMOOTH);

                    //=== draw Image into Buffered Image=
                    BufferedImage bimage = new BufferedImage(scaledimg.getWidth(null), scaledimg.getHeight(null),
                            BufferedImage.TYPE_INT_RGB);
                    Graphics2D g2d = bimage.createGraphics();
                    g2d.drawImage(scaledimg, 0, 0, null);
                    g2d.dispose();

                    //=== saving image to folder
                    path = "/home/aa/NetBeansProjects/searchChd/web/RecordPhotos";
                    pathfilename = path + File.separator + "img_" + recordid + ".jpg";
                    File f = new File(pathfilename);
                    ImageIO.write(bimage, "jpeg", f);
                } else {
                    //=== saving image to folder
                    path = "/home/aa/NetBeansProjects/searchChd/web/RecordPhotos";
                    pathfilename = path + File.separator + "img_" + recordid + ".jpg";
                    File f = new File(pathfilename);
                    ImageIO.write(bimg, "jpeg", f);
                }
            }

            //==== save imagepath to Address Table

            try {
                Configuration cfg = new Configuration();
                SessionFactory sessionFactory = cfg.configure("hibernate.cfg.xml").buildSessionFactory();
                Session s = sessionFactory.openSession();
                Transaction transaction = s.beginTransaction();
                String sql = "UPDATE bean.Address" + " SET imagepath=:imgpath" + " WHERE addid=:id";

                Query query = s.createQuery(sql);
                query.setParameter("imgpath", pathfilename);
                query.setParameter("id", addid);

                int result = query.executeUpdate();

                if (result > 0) {
                    System.out.println("Update successful");
                }

                transaction.commit();
                s.close();

                //==== if success then redirect to success page
                request.getSession(false).setAttribute("info", "Your Image is Updated Successfully");
                response.sendRedirect("AdminPanel/AdminPanelSuccess.jsp");
            }

            catch (Exception ex) {
                System.out.println(ex);
            }
            break;
        }

        }

    }

    // <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>

}