There are few steps to start working with hibernate
1) pre-requisite for hibernate
2) Creation of Database / tables
3) Creation of POJO for tables
4) Mapping POJO to Database table
5) Configuration
6) Log4j configurations
7) Execute the example
1) Pre-requisite for hibernate
a) The jdk1.5.x/1.6.x should be installed, JAVA_HOME and PATH should be set correctly.
b) Download and extract/install zip/tar file of Eclipse IDE (I used Galileo).
c) Download the following jars files from http://hibernate.org
ant-1.6.2.jar
ant-antlr-1.6.2.jar
ant-junit-1.6.2.jar
ant-launcher-1.6.2.jar
antlr-2.7.4.jar
ant-swing-1.6.2.jar
asm-3.3.jar
c3p0-0.8.5.jar
cglib-2.2.jar
cleanimports.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
concurrent-1.3.2.jar
connector.jar
dom4j-1.5.2.jar
ehcache-1.1.jar
ejb3-persistence-3.3.2.Beta1.jar
hibernate-3.2.6.ga.jar
hibernate3.jar
hibernate-annotations-3.4.0.GA.jar
hibernate-commons-annotations-3.1.0.GA.jar
hibernate-core-3.3.0.SP1.jar
hibernate-entitymanager-3.4.0.GA.jar
hibernate-search-3.0.1.GA.jar
hibernate-validator-3.0.0.ga.jar
jaas.jar
jacc-1_0-fr.jar
jaxen-1.1-beta-4.jar
jboss-cache.jar
jboss-common.jar
jboss-jmx.jar
jboss-remoting.jar
jboss-system.jar
jdbc2_0-stdext.jar
jgroups-2.2.7.jar
jta.jar
junit-3.8.1.jar
log4j-1.2.9.jar
mysql-connector-java-3.0.16-ga-bin.jar
mysql-connector-java-3.1.6-bin.jar
oscache-2.1.jar
postgresql-8.2-504.jdbc3.jar
proxool-0.8.3.jar
swarmcache-1.0rc2.jar
versioncheck.jar
xerces-2.6.2.jar
xml-apis.jar
*some are not required e.g. if you are using mysql as your database then postgresql-8.2-504.jdbc3.jar is not required.
2) Creation of Database / tables (Postgres SQL) :
|--------------------------------------------------------------------|
CREATE TABLE "public"."emp" (
3) Creation of POJO for tables (Employee )
4) Mapping POJO to Database table
You can use XML or annotations to define, how to map your class attributes to a database table.
Create the Employee.hbm.xml in the package net.vs.example and change it to the following
PostgreSQL Version:
5) Configuration
Create a file named “hibernate.cfg.xml” in your root directory
Insert the following in your hibernate file.
PostgreSQL Version:
6) Log4j configurations
As you can see above we added the log4j library. This library does like a configuration file in thesource directory or it welcomes you with the following error.
log4j:WARN No appenders could be found for logger (TestClient).
log4j:WARN Please initialize the log4j system properly.
TestHibernate.java
public class TestHibernate{
public static void main(String agrs[]) {
Session session = null;
try {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
session = factory.openSession();
Employee emp = new Employee();
emp.setName("John");
emp.setDob(new Date());
session.save(emp);
} catch(Exception be){
be.printStackTrace();
}
finally {
// Actual contact insertion will happen at this step
if (null!=session){
session.flush();
session.close();
}
}
}
1) pre-requisite for hibernate
2) Creation of Database / tables
3) Creation of POJO for tables
4) Mapping POJO to Database table
5) Configuration
6) Log4j configurations
7) Execute the example
1) Pre-requisite for hibernate
a) The jdk1.5.x/1.6.x should be installed, JAVA_HOME and PATH should be set correctly.
b) Download and extract/install zip/tar file of Eclipse IDE (I used Galileo).
c) Download the following jars files from http://hibernate.org
ant-1.6.2.jar
ant-antlr-1.6.2.jar
ant-junit-1.6.2.jar
ant-launcher-1.6.2.jar
antlr-2.7.4.jar
ant-swing-1.6.2.jar
asm-3.3.jar
c3p0-0.8.5.jar
cglib-2.2.jar
cleanimports.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
concurrent-1.3.2.jar
connector.jar
dom4j-1.5.2.jar
ehcache-1.1.jar
ejb3-persistence-3.3.2.Beta1.jar
hibernate-3.2.6.ga.jar
hibernate3.jar
hibernate-annotations-3.4.0.GA.jar
hibernate-commons-annotations-3.1.0.GA.jar
hibernate-core-3.3.0.SP1.jar
hibernate-entitymanager-3.4.0.GA.jar
hibernate-search-3.0.1.GA.jar
hibernate-validator-3.0.0.ga.jar
jaas.jar
jacc-1_0-fr.jar
jaxen-1.1-beta-4.jar
jboss-cache.jar
jboss-common.jar
jboss-jmx.jar
jboss-remoting.jar
jboss-system.jar
jdbc2_0-stdext.jar
jgroups-2.2.7.jar
jta.jar
junit-3.8.1.jar
log4j-1.2.9.jar
mysql-connector-java-3.0.16-ga-bin.jar
mysql-connector-java-3.1.6-bin.jar
oscache-2.1.jar
postgresql-8.2-504.jdbc3.jar
proxool-0.8.3.jar
swarmcache-1.0rc2.jar
versioncheck.jar
xerces-2.6.2.jar
xml-apis.jar
*some are not required e.g. if you are using mysql as your database then postgresql-8.2-504.jdbc3.jar is not required.
2) Creation of Database / tables (Postgres SQL) :
|--------------------------------------------------------------------|
CREATE TABLE "public"."emp" (
id SERIAL,|--------------------------------------------------------------------|
name text,
dob date
PRIMARY KEY(id)
);
3) Creation of POJO for tables (Employee )
package net.vs.example; public class Employee { private Integer id; private String name; private Date dob; public Employee(){ } 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 Date Dob() { return dob; } public void Dob(Date dob) { this.date = date; } |
4) Mapping POJO to Database table
You can use XML or annotations to define, how to map your class attributes to a database table.
Create the Employee.hbm.xml in the package net.vs.example and change it to the following
PostgreSQL Version:
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=net.vs.example.Employee table=emp>
<id name="id" column="id">
<generator class="sequence">
<param name="sequence"> emp_id_seq param>
generator>
id>
<property name="name" column = "name"/>
<property name="dob" column="dob" />
class>
hibernate-mapping>
5) Configuration
Create a file named “hibernate.cfg.xml” in your root directory
Insert the following in your hibernate file.
PostgreSQL Version:
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>
<property name="connection.url">
jdbc:postgresql://localhost:5432/myDB
property>
<property name="connection.username"> myuser property>
<property name="connection.driver_class">org.postgresql.Driverproperty>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialectproperty>
<property name="connection.password">mypwdproperty>
<property name="hibernate.show_sql">trueproperty>
<mapping resource="employee.hbm.xmll" />
session-factory>
hibernate-configuration>
6) Log4j configurations
As you can see above we added the log4j library. This library does like a configuration file in thesource directory or it welcomes you with the following error.
log4j:WARN No appenders could be found for logger (TestClient).
log4j:WARN Please initialize the log4j system properly.
Create a file named log4j.properties in the root directory and insert the following:
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout
log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug
### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug
### log just the SQL
log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=info
### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug
### log cache activity ###
log4j.logger.org.hibernate.cache=info
### log transaction activity
#log4j.logger.org.hibernate.transaction=debug
### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
7) Execute the example TestHibernate.java
public class TestHibernate{
public static void main(String agrs[]) {
Session session = null;
try {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
session = factory.openSession();
Employee emp = new Employee();
emp.setName("John");
emp.setDob(new Date());
session.save(emp);
} catch(Exception be){
be.printStackTrace();
}
finally {
// Actual contact insertion will happen at this step
if (null!=session){
session.flush();
session.close();
}
}
}
Cheers !
No comments:
Post a Comment