We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Exception in thread "main" java.lang.NullPointerException at dao.EmployeeDao.main(EmployeeDao.java:42)

maheshvrk3
maheshvrk3 asked
on
Medium Priority
1,724 Views
Last Modified: 2013-11-24
Hi,
            I am new to Hibernate3.0 as well this forum.. I am happy to be member this forum...

Right now i am learning Hibernate ..herewith i have simple written simple application
for storing the data into DB using hibernate.. while running the application i ama getting  above error..  see the code below.
1) This is My bean class
 
package Bean;
 
public class EmployeeBean 
{
	private String firstName;
	private String lastName;
	private String id;
	
	public String getFirstName()
	{
		return firstName;
	}
	
	public void setFirstName(String firstName)
	{
		this.firstName = firstName;
	}
	
	public String getLastName()
	{
		return lastName;
	}
	
	public void setLastName(String lastName)
	{
		this.lastName = lastName;
	}
	
	public String getId()
	{
		return id;
	}
	
	public void setId(String id)
	{
		this.id = id;
	}
 
}
 
 
2) I have created Table called Employee  using oracle with filed names Id,FirstName, LastName
 
 
3) this is mY DAo class for storing the inot database
 
 
package dao;
 
 
import org.hibernate.SessionFactory;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
import Bean.EmployeeBean;
 
 
public class EmployeeDao 
{
	public static void main(String[] args)
	{
		Session sesssion = null;
		
		try
		  {
			 
			// Configuration configuration = new  Configuration();
			
			 SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
		
			 sesssion = sessionFactory.openSession();
			
			 System.out.println("Inserting   Record ");
			 EmployeeBean employeeBean = new  EmployeeBean();
			 employeeBean.setId("350");
			 employeeBean.setFirstName("Mahesh");
			 employeeBean.setLastName("Kuppusamy");
			 sesssion.save(employeeBean);
		  }
		
		catch (Exception e) 
		 {
			    
				System.out.println(e.getMessage());
		 }
		finally
		{
		  // Actual insert will happen here
			
			sesssion.flush();
			sesssion.close(); 
		}
		
		
	}
 
}
 
 
4) see the EmployeeAdd.hbm.xml here
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Jun 4, 2008 2:00:58 AM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping default-lazy="false">
    <class name="Bean.EmployeeBean" table="Employee"  select-before-update="true">
    
        <id name="id" type="string">
            <column name="Id" length="3" />
            <generator class="assigned" />
        </id>
        
        <property name="firstName" type="string">
            <column name="FirstName" length="5" not-null="true"/>
  		</property>                 
  		
        <property name="lastName" type="string">
        	<column name="LastName" length="5" not-null="true" />
        </property>
               
        </class>
</hibernate-mapping>
 
 
5) see the hibernate.cfg.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<!-- =============================================================== -->
		<!--                        SQL SERVER DIALECT                       -->
		<!-- =============================================================== -->
	
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
		<property name="hibernate.connection.username">system</property>
        <property name="hibernate.connection.password">tspl</property>
        <property name="hibernate.connection.pool_size">10</property>
        <property name="show_sql">true</property>
		<property name="dialect">org.hibernate.dialect.OracleDialect</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
 
 
		<!-- =============================================================== -->
		<!--                      HIBERNATE MAPPINGS                         -->
		<!-- =============================================================== -->
		
		<mapping resource="xbm/EmployeeAdd.hbm.xml"/>
		
	 	</session-factory>
</hibernate-configuration>

Open in new window

Comment
Watch Question

Bart CremersJava Architect

Commented:
If I'm counting lines correctly, it's the "sesssion.flush()" which throws the NullPointer. This means your session did not get initialized. I think there's another exception thrown before.

Change the catch to:

}
catch (Exception e) {
    e.printStackTrace();
}
a_b
Top Expert 2009

Commented:
Can you post the full stack trace?

Author

Commented:
I  have changed the catch statement to

catch (Exception e)
{
 e.printStackTrace();

 }

 Still i am getting the same Error

Exception in thread "main" java.lang.NullPointerException
      at dao.EmployeeDao.main(EmployeeDao.java:43)

Author

Commented:
Herewith i ahve attached the sanpshot
a_b
Top Expert 2009

Commented:
Cannot see the snapshot.

Author

Commented:
Herewith i ahve attached the sanpshot


stackTrace.doc
a_b
Top Expert 2009

Commented:
Please share the solution with us.
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
Solution to this issues is

add the following  conditon in the finally

finally(
                         {
          if(session==null)
              sesssion.flush();
         sesssion.close();
}
      }

           

Author

Commented:
As i  have added the solution for this issue.. proceedong to close the question...

Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.