Are You Recruiter/Hiring Manager?
Cloud-based Candidate Screening | Online Tests
PMP 1600 Questions
PMP 1600 Questions
1600 PMP mock questions 1400 CAPM mock questions 800 SCJP 6 mock questions 600 OCAJP 7 mock questions 590 OCPJP 7 mock questions 556 SCWCD 5 mock questions 500 OCEJWCD 6 mock questions pdfDownload (java,struts, hibernet etc)

Tutorial Home

Hibernate

  • Advantage of Hibernate over JDBC
  • Hibernate Setup with an web Application
  • First Hibernate Application
  • Hibernate mapping with Database TABLE
  • Hibernate Data Type-Java Data Type - SQL Data Type mapping
  • One to Many Relation in Hibernate
  • One to Many Relation in Hibernate bi-directional
  • Many to Many Relation in Hibernate
  • HQL: The Hibernate Query Language
  • Criteria Queries
  • Criteria Queries : Equal (eq), Not Equal(ne), Less than (le), greater than (gt),greater than or equal(ge) and Ordering the results
  • Criteria Queries: And OR conditions
  • Hibernate generator to generate id (primary key)
  • prevent concurrent update in Hibernate,slate object updatation in Hibernate,version checking in Hibernate

    Struts


  • Model View Controller (MVC)
  • Model View Controller (MVC)
  • Struts Flow-How Struts Works?
  • Struts Tutorial - Struts Setup- First Struts Action class setup
  • Message Resources
  • Validation Framework
  • Validation Framework-client side
  • ForwardAction
  • IncludeAction
  • DispatchAction
  • LookupDispatchAction
  • DynaActionForm
  • DynaActionForm
  • Struts Tutorial - Mutli-click prevention using struts tokens-Prevent Duplicate Submission
  • Logic Iterate Map and List

    JSP


  • JSP Tutorial
  • Introduction to JSP
  • JSP Comments
  • JSP Syntax
  • JSP Scripting Elements :Scriptlet, expression, declaration
  • JSP Directives
  • implicit objects in JSP
  • JSP Actions
  • Introduction to JSP
  • jsp:useBean
  • The jsp:setProperty Action
  • The jsp:getProperty Action
  • Introduction to JSP

    Spring


  • Spring Tutorial
  • Introduction to Spring
  • Benefits of Using Spring Framework
  • Inversion of Control in Spring
  • Introduction to BeanFactory
  • Dependency Injection in Spring
  • Collections Setter Injection
  • Bean Scopes in Spring
  • Spring IOC Setup Step by Step
  • Bean Lifecycle in Spring
  • ApplicationContext
  • MessageSources in Spring
  • Web Spring MVC framework
  • Developing Your First Spring Web Application
  • Developing Your Second Spring Web Application with Spring Form
  • Developing Your First Spring Web Application with Spring Validation Framework with Code Example
  • Spring integration with Hibernate
  • Integrate First Web Application on Spring and Hibernate


    This tutorial guide you to Integrate Spring Hibernate using Tomcat.
    Spring : User Interface and Service Layer
    Hibernate : DAO layer

    Here is the steps for Integration Spring Hibernate using Tomcat

    You can download the code with zip..Spring_Hibernate.zip - Login with facebook Code is ready..just download and run in tomcat..


    Steps to run the downloded code :
    step 1. unzip the downloaded zip file to D:\tomcat\webapps\ directory.
    step 2. D:\tomcat\bin > stratup.bat
    step 3. Go to browser and type the URL : http://localhost:8080/springhibernate/test/userPage.do

    step 4. Enter User Name and Department and submit the "save" button.

    Here is the code Explanation

    Spring Part


    Step 1. Set the DispatcherServlet in web.xml

    DispatcherServlet


    DispatcherServlet a central servlet that dispatches requests to controllers and offers other functionality facilitating the development of web applications. DispatcherServlet completely integrated with the Spring IoC container and allows you to use every other feature that Spring has.
    The DispatcherServlet is an Servlet declared in the web.xml.
    Consider the following DispatcherServlet servlet configuration (in the web.xml file.)
    <web-app> <servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    </web-app>
    With the above servlet configuration , you will need to have a file called '/WEB-INF/test-servlet.xml' in your application.

    Step 2. test-servlet.xml file

    test-servlet.xml file contains viewResolver , Handler mappings and Controllers.
    viewResolver :
    All controllers in the Spring Web MVC framework return a ModelAndView instance. Views in Spring are addressed by a view name and are resolved by a view resolver.
    if in the test-servlet.xml you defind <property name="formView"><value>userForm</value></property>
    then it forward to /WEB-INF/jsp/userForm.jsp

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
    </bean>
    SimpleUrlHandlerMapping:
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="urlMap">
    <map>
    <entry key="/test/userPage.do"><ref bean="userController"/></entry>
    </map>
    </property>
    </bean>
    Controllers :
    <bean id="userFormValidator" class="com.UserFormValidator"/>
    <bean id="userController" class="com.UserController">
    <property name="sessionForm"><value>true</value></property>
    <property name="commandName"><value>userBean</value></property>
    <property name="commandClass"><value>com.UserBean</value></property>
    <property name="validator"><ref bean="userFormValidator"/></property>
    <property name="formView"><value>userForm</value></property>
    <property name="successView"><value>success</value></property>
    <property name="userdao"><ref bean="userdao"/></property>
    </bean>
    If in the browser you call http://localhost:8080/springhibernate/test/userPage.do then formBackingObject() method of UserController class will be called and forward to /WEB-INF/jsp/userForm.jsp based on below configuration
    <property name="formView"><value>userForm</value></property>
    formBackingObject() method return formView.

    Step 3. Controller classes

    UserController.java
    If in the browser you call http://localhost:8080/springhibernate/test/userPage.do then formBackingObject() method of UserController class will be called and forward to /WEB-INF/jsp/userForm.jsp based on below configuration
    <property name="formView"><value>userForm</value></property>
    package com;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;

    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.SimpleFormController;


    public class UserController extends SimpleFormController{
    private UserDAO userdao;

    public Object formBackingObject(HttpServletRequest request) throws ServletException
    {
    UserBean backingObject = new UserBean();
    System.out.println("formBackingObject");

    return backingObject;
    }

    public ModelAndView onSubmit(Object command) throws ServletException {
    UserBean user = (UserBean)command;
    System.out.println("username :"+user.getUserName());
    System.out.println("dept :"+user.getDeptName());
    getUserdao().saveUser(user);
    //Now you can validate to database
    return new ModelAndView("succes");
    }



    /**
    * @return Returns the userdao.
    */
    public UserDAO getUserdao() {
    return userdao;
    }
    /**
    * @param userdao The userdao to set.
    */
    public void setUserdao(UserDAO userdao) {
    this.userdao = userdao;
    }
    }


    In the userForm.jsp
    <form method="post" action="/springhibernate/test/userPage.do">
    <input type="submit" alignment="center" value="Save">
    on submit the save button call will goto onSubmit() method of the UserController.java
    and besed on return new ModelAndView("succes"); contoller forward to /WEB-INF/jsp/succes.jsp

    Spring and Hibernate Integration

    Step 4. applicationContext.xml

    applicationContext.xml contains all the Dependency Injections . And it contains hibernate SessionFactory information also. Here Hibernate integatred with Spring.
    userservice object has userdao object as setter Injection
    userdao object has sessionFactory object as setter Injection.


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>

    <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
    <property name="url"><value>jdbc:mysql://localhost:3306/techfaq</value></property>
    <property name="username"><value>techfaq</value></property>
    <property name="password"><value>techfaq</value></property>

    </bean>
    <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource"><ref bean="myDataSource"/></property>
    <property name="mappingResources">
    <list>
    <value>/com/user.hbm.xml</value>
    </list>
    </property>
    <property name="hibernateProperties">
    <value>
    hibernate.dialect=org.hibernate.dialect.MySQLDialect
    </value>
    </property>
    </bean>

    <bean id="userdao" class="com.UserDAO">
    <property name="sessionFactory"><ref bean="mySessionFactory"/></property>

    </bean>

    </beans>

    here is the relation between userController and userdao. (in the test-servlet.xml)
    <bean id="userController" class="com.UserController">
    <property name="sessionForm"><value>true</value></property>
    <property name="commandName"><value>userBean</value></property>
    <property name="commandClass"><value>com.UserBean</value></property>
    <property name="validator"><ref bean="userFormValidator"/></property>
    <property name="formView"><value>userForm</value></property>
    <property name="successView"><value>success</value></property>
    <property name="userdao"><ref bean="userdao"/></property>
    </bean>

    Hibernate Part


    Step 1. Create Table in Data Base


    CREATE TABLE `techfaq`.`user_test`
    ( `user_id` int(10) unsigned NOT NULL auto_increment,
    `user_name` varchar(45) default NULL,
    `dept_name` varchar(45) default NULL,
    PRIMARY KEY (`user_id`));

    Step 2. user.hbm.xml which maps to user_test TABLE


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

    <hibernate-mapping>
    <class name="com.UserBean" table="USER_TEST">
    <id name="userId" column="USER_ID" type="int">
    <generator class="native"/>
    </id>

    <property name="userName" column="user_name"/>
    <property name="deptName" column="dept_name"/>




    </class>

    </hibernate-mapping>

    Step 3. UserBean.java which maps to user.hbm.xml and user_test TABLE

    package com;


    public class UserBean {
    int userId;
    String userName;
    String deptName;



    /**
    * @return Returns the userName.
    */
    public String getUserName() {
    return userName;
    }
    /**
    * @param userName The userName to set.
    */
    public void setUserName(String userName) {
    this.userName = userName;
    }

    /**
    * @return Returns the deptName.
    */
    public String getDeptName() {
    return deptName;
    }
    /**
    * @param deptName The deptName to set.
    */
    public void setDeptName(String deptName) {
    this.deptName = deptName;
    }
    /**
    * @return Returns the userId.
    */
    public int getUserId() {
    return userId;
    }
    /**
    * @param userId The userId to set.
    */
    public void setUserId(int userId) {
    this.userId = userId;
    }
    }

    Step 4. UserDAO.java which is used to save user details into Data Base

    package com;


    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;

    import org.springframework.orm.hibernate.support.HibernateDaoSupport;


    public class UserDAO {

    private SessionFactory sessionFactory;
    public void saveUser(UserBean user){
    Session session = getSessionFactory().openSession();
    try
    {
    Transaction tx = session.beginTransaction();
    session.save(user);
    tx.commit();
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    session.close();
    }

    }


    /**
    * @return Returns the sessionFactory.
    */
    public SessionFactory getSessionFactory() {
    return sessionFactory;
    }
    /**
    * @param sessionFactory The sessionFactory to set.
    */
    public void setSessionFactory(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
    }
    }

    The information you are posting should be related to java and ORACLE technology. Not political.