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 //获取Session 16 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,开发调试依然还是比较艰难的事情。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。