全面讲解Hibernate Annotations
创始人
2024-06-08 08:20:47
0
Hibernate还是比较常用的,于是我研究了一下Hibernate Annotations,在这里拿出来和大家分享一下,希望对大家有用。

我们看看利用 Hibernate Annotations 如何做,只要三个类 不再需要 hbm.xml配置文件:

还要把用到的两个jar文件 放入的类路径中. 具体如何做,请参考  Hibernate Annotations 中文文档.HibernateUtil.java 也就是 Hibernate文档中推荐的工具类,Person.java 一个持久化的类, Test.java 测试用的类.都在test.hibernate.annotation 包中. 每个类的代码如下:

  1. package test.hibernate.annotation;  
  2.  
  3. import org.hibernate.HibernateException;  
  4. import org.hibernate.Session;  
  5. import org.hibernate.SessionFactory;  
  6. import org.hibernate.cfg.AnnotationConfiguration;  
  7. import org.hibernate.cfg.Configuration;  
  8.  
  9. public class HibernateUtil {  
  10. public static final SessionFactory sessionFactory;  
  11.  
  12. static {  
  13. try {  
  14. sessionFactory = new AnnotationConfiguration()     
  15. //注意: 建立 SessionFactory于前面的不同  
  16. .addPackage("test.hibernate.annotation")  
  17. .addAnnotatedClass(Person.class)  
  18.  
  19. .configure()  
  20. .buildSessionFactory();  
  21. //new Configuration().configure().buildSessionFactory();  
  22. }   
  23. catch (HibernateException e) {  
  24. // TODO Auto-generated catch block  
  25.  
  26. e.printStackTrace();  
  27. throw new ExceptionInInitializerError(e);  
  28. }  
  29. }  
  30.  
  31. public static final ThreadLocal session = new ThreadLocal();  
  32.  
  33. public static Session currentSession() throws HibernateException {  
  34. Session s = session.get();  
  35.  
  36. if(s == null) {  
  37. s = sessionFactory.openSession();  
  38. session.set(s);  
  39. }  
  40.  
  41. return s;  
  42. }  
  43.  
  44. public static void closeSession() throws HibernateException {  
  45. Session s = session.get();  
  46. if(s != null) {  
  47. s.close();  
  48. }  
  49. session.set(null);  
  50. }  

不需要了 hbm.xml 映射文件, 是不是简单了一些 .给人认为简化了一些不是主要目的.主要是可以了解一下 EJB3 的持久化机制,提高一下开发效率才是重要的.

好了.Hibernate Annotations的例子就完了

【编辑推荐】

  1. Hibernate创建和持久化Product
  2. 浅谈Hibernate工作方式
  3. 浅谈Hibernate OrderItem
  4. 简述Hibernate历史背景
  5. Hibernate的Orders OrderItem类

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...