A quick’n dirty tutorial-by-example for Hibernate:
(Using one table, an Oracle9+ database and Hibernate2)
1) download the Hibernate distribution
2) put these jarfiles in /WEB-INF/lib:
hibernate2.jar (hibernate core)
cglib-full-2.0.2.jar (runtime class-enhancing)
dom4j-1.4.jar (xml reading)
ehcache-0.9.jar (objectcache)
c3p0-0.8.4.5.jar (connectionpool)
jta.jar (transactions)
3) put this xml-file in your classpath (as /WEB-INF/classes/hibernate.cfg.xml
):
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="connection.url">jdbc:oracle:thin:@yourDBserver:port:name</property> <property name="connection.username">uid</property> <property name="connection.password">pass</property> <property name="show_sql">true</property> <property name="dialect">net.sf.hibernate.dialect.Oracle9Dialect</property> <property name="c3p0.min_size">5</property> <property name="c3p0.max_size">20</property> <property name="c3p0.timeout">1800</property> <property name="c3p0.max_statements">50</property> <mapping resource="nl/amis/bookreviewstruts/bean/Review.hbm.xml"/> </session-factory> </hibernate-configuration>
4) Assuming this table:
TABLE BR_REVIEW ( REVIEWID NUMBER NOT NULL, BOOKTITLE VARCHAR2 (255) NOT NULL, ISBN VARCHAR2 (100) NOT NULL, AUTHORS VARCHAR2 (255), PUBLISHER VARCHAR2 (100), REVIEWTITLE VARCHAR2 (255), REVIEWERS VARCHAR2 (255), APPRECIATION NUMBER )
and a javabean like this:
public class Review { private long reviewId; [..] public long getReviewId() { return this.reviewId;} public void setReviewId(long reviewId) { this.reviewId = reviewId;} [..] }
create nl/amis/bookreviewstruts/bean/Review.hbm.xml:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="nl.amis.bookreviewstruts.bean.Review" table="BR_REVIEW"> <id name="reviewId" unsaved-value="-1"> <generator class="native"/> </id> <property name="bookTitle" not-null="true"/> [..] </class> </hibernate-mapping>
5) Create the HibernateUtil class:
import net.sf.hibernate.*; import net.sf.hibernate.cfg.*; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class HibernateUtil { private static Log log = LogFactory.getLog(HibernateUtil.class); private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { log.error("Initial SessionFactory creation failed.", ex); throw new ExceptionInInitializerError(ex); } } public static final ThreadLocal session = new ThreadLocal(); public static Session currentSession() throws HibernateException { Session s = (Session) session.get(); // Open a new Session, if this Thread has none yet if (s == null) { s = sessionFactory.openSession(); session.set(s); } return s; } public static void closeSession() throws HibernateException { Session s = (Session) session.get(); session.set(null); if (s != null) s.close(); } }
6) That’s it! Now for example query for all results:
Session session = HibernateUtil.currentSession(); List allReviews = session.find("from Review"); HibernateUtil.closeSession();
More about querying and manipulating data can be found here, here, here or here
Hi,
Where can I download the soruce for this hibernate tutorial from?
Thank you very much,
Mehdi
Hi,
User Registration and Login application using Struts, Hibernate and Spring.
Visit: http://www.roseindia.net/struts/hibernate-spring/index.sh
tml
This tutorial shows how to develop User Registration and Login Application using Spring, Hibernate and Spring technologies.
Regards
Deepak Kumar
I am a database professional and was responsible for migrating mysql database to oracle.
I also had to demonstrate that application is working with migrated database.
That’s it. I didn’t have the time and skills to learn hibernate.
I needed exactly the kind of info as given here.
Thank you very much for helping me complete my task.
Some additional links to get started with Hibernate: