首页 > 代码库 > Hibernate4.3.5入门HelloWorld

Hibernate4.3.5入门HelloWorld

本文给出一个简单的Hibernate4.3.5入门实例,配置方式采用XML文件方式(这种方式已经不是主流了,目前越来越多采用Annotation方式映射POJO实体)

代码结构如下图所示:主要用到hibernate-release-4.3.5.Final\lib\required下的jar

 在这里只展示出主要的代码

1、HibernateUtil.java

 1 package com.wangp.hibernate.helper; 2  3 import org.hibernate.SessionFactory; 4 import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 5 import org.hibernate.cfg.Configuration; 6 import org.hibernate.service.ServiceRegistry; 7  8 public class HibernateUtil { 9 10     private static final SessionFactory sessionFactory = buildSessionFactory();11 12     private static SessionFactory buildSessionFactory() {13         try {14             Configuration configuration = new Configuration();15             configuration.configure();16             ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();17             SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);18             return sessionFactory;19         }20         catch (Throwable ex) {21             System.err.println("buildSessionFactory() error:" + ex);22             throw new ExceptionInInitializerError(ex);23         }24     }25 26     public static SessionFactory getSessionFactory() {27         return sessionFactory;28     }29 30 }

 

2、测试类

 1 import org.hibernate.HibernateException; 2 import org.hibernate.Session; 3  4 import com.wangp.hibernate.helper.HibernateUtil; 5 import com.wangp.hibernate.model.Hibernate; 6  7 public class HibernateTest { 8     public static void main(String[] args) { 9         try {10             //实例化POJO类11             Hibernate h = new Hibernate();12             h.setDriverName("oracle.jdbc.OracleDriver");13             h.setId("1");14             h.setUrl("jdbc:oracle:thin:@localhost:1521@orcl");15             //获取Session16             Session session = HibernateUtil.getSessionFactory().openSession();17             session.beginTransaction();18             //curd操作19             session.save(h);20             session.getTransaction().commit();21         } catch (HibernateException e) {22             e.printStackTrace();23         }24     }25 }

从开发的角度简单的谈谈 hibernate的优缺点

优点:

1、通过hibernate来建立DB与实体之间的联系,对于简单的表操作不需要再去拼写SQL语句,减少了重复的工作量。

2、hibernate去除了app与DB之间的直接耦合关系,使得app的移植性得到增强

缺点:

1、对于SQL新手来讲,在没有接触、处理过复杂的SQL的情况下使用hibernate开发app,即使能够在控制台打出sql,开发调试依然还是比较艰难的事情。