Monday, October 13, 2014

Java bean with Hibernate



Java bean with Hibernate
Person.java (entity class from database)
public class Person implements Serializable {

    private Integer id;
    private String name;
    private Integer age;

    public Person() {
    }

    public Person(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "pac.Person[ id=" + id + " ]";
    }

}

Hibernate.cfg.xml

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
    <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
    <property name="hibernate.connection.url">jdbc:derby://localhost:1527/mydb</property>
    <property name="hibernate.connection.username">app</property>
    <property name="hibernate.connection.password">app</property>
    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.current_session_context_class">thread</property>
    <mapping resource="/Person.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

Person.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="pac.Person" table="PERSON">
      <id column="ID" name="id">
            <generator class="assigned"/>
        </id>
        <property column="NAME" name="name"/>
        <property column="AGE" name="age"/>
     
  </class>
</hibernate-mapping>

NewHibernateUtil.java class

public class NewHibernateUtil {

    private static final SessionFactory sessionFactory;
   
    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml)
            // config file.
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception.
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
   
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
         public static Session openSession() {
        return sessionFactory.openSession();
    }
    
      public static Session getCurrentSession() {
        return sessionFactory.getCurrentSession();
    }

    /**
     *
     * closes the session factory
     */
    public static void close() {

        if (sessionFactory != null) {
            sessionFactory.close();
        }
    }
}




PersonManger.java class

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pac;

import java.util.List;
import javax.ejb.Stateless;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Hasangi
 */
@Stateless
public class PersonManger {

    public void createPerson(Person person) {
        Transaction tx = null;

        Session session = NewHibernateUtil.getCurrentSession();
        try {
            System.out.println("sssssssss");
            tx = session.beginTransaction();
            session.save(person);
            tx.commit();

        } catch (RuntimeException e) {

            if (tx != null && tx.isActive()) {
                try {
// Second try catch as the rollback could fail as well tx.rollback();
                } catch (HibernateException e1) {
                    System.out.println("Error rolling back transaction");

                }

// throw again the first exception throw e;

            }
        }

    }

    public void updatePerson(Person person) {
        Transaction tx = null;

        Session session = NewHibernateUtil.getCurrentSession();
        try {
            System.out.println("22222222");
            tx = session.beginTransaction();
            session.update(person);
            tx.commit();
            System.out.println("333333333333333");
        } catch (RuntimeException e) {

            if (tx != null && tx.isActive()) {
                try {
// Second try catch as the rollback could fail as well tx.rollback();
                } catch (HibernateException e1) {
                    System.out.println("Error rolling back transaction");
                }

// throw again the first exception throw e;
            }

        }
    }

    public Person ViewPerson(int ID) {
        Transaction tx = null;

        Session session = NewHibernateUtil.getCurrentSession();
        try {
            tx = session.beginTransaction();
            Person per = (Person) session.get(Person.class, ID);
            tx.commit();
            return per;

        } catch (RuntimeException e) {

            if (tx != null && tx.isActive()) {
                try {
// Second try catch as the rollback could fail as well tx.rollback();
                } catch (HibernateException e1) {
                    System.out.println("Error rolling back transaction");

                }
                throw e;

            }
        }
        return null;
    }

    public List listPerson() {
        Transaction tx = null;
        Session session = NewHibernateUtil.getCurrentSession();
        try {
            tx = session.beginTransaction();
            List customer = session.createQuery("select c from Person as c").list();
            tx.commit();

            return customer;
        } catch (RuntimeException e) {
            if (tx != null && tx.isActive()) {
                try {
// Second try catch as the rollback could fail as well
                    tx.rollback();
                } catch (HibernateException e1) {
                    System.out.println("Error rolling back transaction");
                }
                throw e;
            }
        }
        return null;
    }

    public  void deletePerson(Person person) {
        Transaction tx = null;

        Session session = NewHibernateUtil.getCurrentSession();
        try {

            tx = session.beginTransaction();
            session.delete(person);
            tx.commit();

        } catch (RuntimeException e) {

            if (tx != null && tx.isActive()) {
                try {
// Second try catch as the rollback could fail as well tx.rollback();
                } catch (HibernateException e1) {
                    System.out.println("Error rolling back transaction");
                }

// throw again the first exception throw e;
            }

        }
    }
}


Servelats

Home.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pac;

import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Hasangi
 */
@WebServlet(name = "Home", urlPatterns = {"/Home"})
public class Home extends HttpServlet {
    @EJB
    private PersonManger personManger;
   

   
    /**
     * 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");
       
         Integer id=0;
        String name=null;
        Integer age=0;
        Integer state=0;
       
         if (request.getParameter("id") != null) {
            id = Integer.parseInt(request.getParameter("id"));
        }
         if (request.getParameter("name") != null) {
            name = request.getParameter("name");
        }
         if (request.getParameter("age") != null) {
            age = Integer.parseInt(request.getParameter("age"));
        }
        
         if ((id != 0) && (name != null) && (age != 0)) {


            try {
                // here we create NewsEntity, that will be sent in JMS message
               
                Person p=new Person();
                p.setId(id);
                p.setName(name);
                p.setAge(age);
                personManger.createPerson(p);
               
                 state=0;

                response.sendRedirect("sucess");

            } catch (Exception e) {
                state=1;
            }
        }
       
        PrintWriter out = response.getWriter();
        try {
            /*
             * TODO output your page here. You may use following sample code.
             */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet Home</title>");           
            out.println("</head>");
            out.println("<body>");
              out.println("<a href='index.jsp'>Home</a>");
            out.println("<h1>Insert Person</h1>");
            out.println("<form>");
            out.println("ID:<input type='text' name='id' id='id'/><br/><br/>");
            out.println("Name:<input type='text' name='name' id='name'/><br/><br/>");
            out.println("Age:<input type='text' name='age' id='age'/><br/><br/>");
            out.println("<button type='submit'>Add Person</button><br/>");
            out.println("</form>");
            out.println("</body>");
            out.println("</html>");
        } finally {           
            out.close();
        }
    }

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

list.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pac;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Hasangi
 */
@WebServlet(name = "list", urlPatterns = {"/list"})
public class list extends HttpServlet {
    @EJB
    private PersonManger personManger;

    /**
     * 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");
        PrintWriter out = response.getWriter();
        try {
            /*
             * TODO output your page here. You may use following sample code.
             */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ListCustomers</title>");           
            out.println("</head>");
            out.println("<body>");
            out.println("<a href='index.jsp'>Home</a>");
            out.println("<h1>List of customers </h1>");
           
            List result = personManger.listPerson();
           
            for (Iterator iter = result.iterator(); iter.hasNext();) {
                    Person c = (Person)iter.next();
                    out.println("ID"+c.getId()+" ,Name : "+c.getName()+" ,Age  : "+c.getAge()+"<br>");
            }
            out.println("</body>");
            out.println("</html>");
        } finally {           
            out.close();
        }
    }

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



Delete.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pac;

import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Hasangi
 */
@WebServlet(name = "delete", urlPatterns = {"/delete"})
public class delete extends HttpServlet {
    @EJB
    private PersonManger personManger;

    /**
     * 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");
        int id = 0;
        Person p = new Person();
        if (request.getParameter("id") != null) {
            id = Integer.parseInt(request.getParameter("id"));
            p = personManger.ViewPerson(id);
        }
       
      
        String name=null;
        Integer age=0;
        Integer state=0;
       
         if (request.getParameter("name") != null) {
            name = request.getParameter("name");
        }
         if (request.getParameter("age") != null) {
            age = Integer.parseInt(request.getParameter("age"));
        }
        
         if ((id != 0) && (name != null) && (age != 0)) {


            try {
                // here we create NewsEntity, that will be sent in JMS message
               
                Person per=new Person();
                per.setId(id);
                per.setName(name);
                per.setAge(age);
                personManger.deletePerson(per);
               
                 state=0;

                response.sendRedirect("list");

            } catch (Exception e) {
                state=1;
            }
        }

       
        PrintWriter out = response.getWriter();
        try {
            /*
             * TODO output your page here. You may use following sample code.
             */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet delete</title>");           
            out.println("</head>");
            out.println("<body>");
           out.println("<a href='index.jsp'>Home</a>");
            out.println("<h1>Delete Person</h1>");
            out.println("<form>");
            out.println("  <input type='text' name='id' id='id'/>");
            out.println("<button type='submit'>Search</button><br/>");

            out.println("</form>");

            if (id != 0) {
                out.println("ID:" + p.getId());
                out.println("<br/>Name:" + p.getName());
                out.println("<br/>Age:" + p.getId() + "<br/><br/>");

                out.println("<form>");
                out.println("<input type='hidden' name='id' id='id' value="+p.getId()+" ><br/><br/>");
                out.println("<input type='hidden' name='name' id='name' value="+p.getName()+"><br/><br/>");
                out.println("<input type='hidden' name='age' id='age' value="+p.getAge()+"><br/><br/>");
                out.println("<button type='submit'>Delete Person</button><br/>");
                out.println("</form>");

            }

            out.println("</body>");
            out.println("</html>");
        } finally {           
            out.close();
        }
    }

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



Success.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pac;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Hasangi
 */
@WebServlet(name = "sucess", urlPatterns = {"/sucess"})
public class sucess extends HttpServlet {

    /**
     * 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");
        PrintWriter out = response.getWriter();
        try {
            /*
             * TODO output your page here. You may use following sample code.
             */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet sucess</title>");           
            out.println("</head>");
            out.println("<body>");
             out.println("<a href='index.jsp'>Home</a>");
            out.println("<h1> Sucess</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {           
            out.close();
        }
    }

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



Update.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pac;

import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Hasangi
 */
@WebServlet(name = "update", urlPatterns = {"/update"})
public class update extends HttpServlet {

    @EJB
    private PersonManger personManger;

    /**
     * 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");
        int id = 0;
        Person p = new Person();
        if (request.getParameter("id") != null) {
            id = Integer.parseInt(request.getParameter("id"));
            p = personManger.ViewPerson(id);
        }
       
      
        String name=null;
        Integer age=0;
        Integer state=0;
       
         if (request.getParameter("name") != null) {
            name = request.getParameter("name");
        }
         if (request.getParameter("age") != null) {
            age = Integer.parseInt(request.getParameter("age"));
        }
        
         if ((id != 0) && (name != null) && (age != 0)) {


            try {
                // here we create NewsEntity, that will be sent in JMS message
               
                Person per=new Person();
                per.setId(id);
                per.setName(name);
                per.setAge(age);
                personManger.updatePerson(per);
               
                 state=0;

                response.sendRedirect("list");

            } catch (Exception e) {
                state=1;
            }
        }

        PrintWriter out = response.getWriter();
        try {
            /*
             * TODO output your page here. You may use following sample code.
             */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet update</title>");
            out.println("</head>");
            out.println("<body>");
             out.println("<a href='index.jsp'>Home</a>");
              out.println("<h1>Update Person</h1>");
            out.println("<form>");
            out.println("  <input type='text' name='id' id='id'/>");
            out.println("<button type='submit'>Search</button><br/><br/><br/>");

            out.println("</form>");

            if (id != 0) {
              
                out.println("<form>");
                out.println("ID:<input type='text' name='id' id='id' value="+p.getId()+" ><br/><br/>");
                out.println("Name:<input type='text' name='name' id='name' value="+p.getName()+"><br/><br/>");
                out.println("Age:<input type='text' name='age' id='age' value="+p.getAge()+"><br/><br/>");
                out.println("<button type='submit'>Update Person</button><br/>");
                out.println("</form>");

            }

            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }

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



Index.html

<a href=”Home”>view home</a>

No comments:

Post a Comment