hibernate创建Session()值

来源:互联网 发布:淘宝店铺如何添加分类 编辑:程序博客网 时间:2024/04/30 03:08

1.Hibernate getCurrentSession和 OpenSession()的区别:(import org.hibernate.SessionFactory;)

   1> getCurrentSession创建Session需要在配置文件中加以配置才可使用

        配置:<propety name=” ” class="">Thread</propety>

   2>OpenSession()创建的Session不会绑定到当前事务!反之.....

   3>getCurrentSession()创建的Session在事务的提交及回滚中更加方便,不需要人工Commit()和rollback();

   4>getCurrentSession()创建出来的Session是共享的!

2.Session的几个主要方法

  1>save,persist ;persist在事务外不会产生INSERT语句

  2>delete 删除对象;

  3>update 更新对象,如果数据库中没有记录,会出现异常;

  4>get  根据ID查询(会立刻访问数据库)

  5>saveOrUpdate,merge(根据ID和version的值来确定是update或save);调用merge的对象是脱管(脱离Session管理)的;

  6>load  根据id差,(返回的是代理,不会立即访问数据库(懒加载))

  7>lock(把对象变成持久对象但不会同步对象的状态)

hibernate提供了两种查询方式:(hql查询及条件查询)

  8>Query 查询比get方法要强大(Query query=Session.createQuery(hql);)// ----------------1----------------hql查询

    8.1>Query的分页:(获取任意满足条件范围内的数据集)

           query.setFirstResult(0);//设置抓取起始记录位置

          query.setMaxResult(10);//设置需要抓取的记录数

    8.2>说明:以上两种分页在Oracle、MySQL、Sqlserver等数据库中通用(原理:根据配置中设定的数据库方言自动生成分页sql);

            

  9>Criteria()-------------------2-------------------条件查询

      Criteria比hql更加面向对象的查询方式:

      9.1>Criteria的创建

     Criteria  criteria=Session.createCriter(Object.Class);

        


   

0 0
原创粉丝点击