不同版本MyEclipse生成的HibernateSessionFactory是有不同的

不同版本MyEclipse生成的HibernateSessionFactory是有不同的:

,MyEclipse4.1(对应Eclipse3.1)中只生成HibernateSessionFactory,不生成相关的DAO,也没有相关的getSession()函数,

 

则访问Session 要用

SessionFactory sf = new Configuration().configure().buildSessionFactory();

              Session session = sf.openSession();

              Transaction tx = session.beginTransaction();

             

             

              Student student = new Student();

              student.setUsername("hibernateasdfjj");

              student.setPassword("q11");

              student.setAge(22);

             

              session.save(student);

             

              tx.commit();

              session.close();

 

 

,6.5MyEclipse ,生成了相关的DAO,并且有getSession()函数

 

 

访问对象时比较简单,并且是线程安全的,注意各种DAO类的继承关系(SessionBaseHibernateDAO 中调用了HibernateSessionFactory.getSession();其中是通过线程调用             

       Session session = (Session) threadLocal.get();

              if (session == null || !session.isOpen())

{

                     if (sessionFactory == null)

 {

                            rebuildSessionFactory();

                     }

                     session = (sessionFactory != null) ? sessionFactory.openSession(): null;

                     threadLocal.set(session);

              })

在获得 session的时候是先去threadLocal上取 如果取到了就直接返回,取不到SessionFactory 生成一个 通过set注册到当前线程上.本质上还是一样的

// 实例化 DAO

              TeacherDAO dao = new TeacherDAO();

              // 打开 transaction

              Transaction tran = dao.getSession().beginTransaction();

              // 生成普通 Java

              Teacher bean = new Teacher();

              // 设置属性

              bean.setId("20080902");

        

              // 插入数据

              dao.save(bean);

              // 提交事务

              tran.commit();

             

              // 读取数据

              java.util.List<Teacher> results = dao.findAll();

             

              // 列出列表中的所有数据

              for(Teacher o : results) {

                     System.out.println("ID:" + o.getId());

                     //

              }

             

              dao.getSession().close();

 

参见《HibernateSessionFactory创建的Session是否单例 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值