`
lgzbj2006
  • 浏览: 28013 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

org.hibernate.Session org.hibernate.classic.Session

阅读更多
在Hibernate3.0中,原来Hibernate2.1的Session接口中的有些基本方法也被废弃,但为了简化升级,这些方法依然是可用的,可以通过org.hibernate.classic.Session子接口来访问它们,例如:
org.hibernate.classic.Session session=sessionFactory.openSession();
session.delete("delete from Customer ");
在Hibernate3.0中,org.hibernate.classic.Session接口继承了org.hibernate.Session接口,在org.hibernate.classic.Session接口中包含了一系列被废弃的方法,如find()、interate()等。SessionFactory接口的openSession()方法返回org.hibernate.classic.Session类型的实例。如果希望在程序中完全使用Hibernate3.0,可以采用以下方式创建Session实例:
org.hibernate.Session session=sessionFactory.openSession();
如果是对已有的程序进行简单的升级,并且希望仍然调用Hibernate2.1中Session的一些接口,可以采用以下方式创建Session实例:
org.hibernate.classic.Session session=sessionFactory.openSession();
在Hibernate3.0中,Session接口中被废弃的方法包括:
* 执行查询的方法:find()、iterate()、filter()和delete(String hqlSelectQuery)
* saveOrUpdateCopy()
Hibernate3.0一律采用createQuery()方法来执行所有的查询语句,采用DELETE 查询语句来执行批量删除,采用merge()方法来替代 saveOrUpdateCopy()方法。
提示:在Hibernate2.1中,Session的delete()方法有几种重载形式,其中参数为HQL查询语句的delete()方法在Hibernate3.0中被废弃,而参数为Ojbect类型的的delete()方法依然被支持。delete(Object o)方法用于删除参数指定的对象,该方法支持级联删除。
Hibernate2.1没有对批量更新和批量删除提供很好的支持,而Hibernate3.0对批量更新和批量删除提供了支持,能够直接执行批量更新或批量删除语句,无需把被更新或删除的对象先加载到内存中。以下是通过Hibernate3.0执行批量更新的程序代码:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlUpdate = "update Customer set name = :newName where name =ldName";
int updatedEntities = s.createQuery( hqlUpdate )
.setString( "newName", newName )
.setString( "oldName", oldName )
.executeUpdate();
tx.commit();
session.close();
以下是通过Hibernate3.0执行批量删除的程序代码:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlDelete = "delete Customer where name =ldName";
int deletedEntities = s.createQuery( hqlDelete )
.setString( "oldName", oldName )
.executeUpdate();
tx.commit();
session.close();
沈阳网站制作,转载请说明出处:http://www.esnsc.com/news210.html
分享到:
评论

相关推荐

    hibernate.properties

    # See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. # ###################### ### Query Language ### ###################### ## define query language ...

    Hibernate源代码分析

    public org.hibernate.classic.Session getCurrentSession() throws HibernateException { if (currentSessionContext == null) { throw new HibernateException("No CurrentSessionContext configured!"); } ...

    HIBERNATE4开发文档,HIBERNATE4的变化

    - 错误2:`java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session` - 解决方案:由于Hibernate4移除了HibernateDaoSupport,需要改写DAO层,直接使用Hibernate...

    struts2.3.x+spring3.1.x+hibernate3.6 demo

    关键问题有几个,第一个HibernateDaoSupport这个没有了,在使用hibernateTemplate的时候,报错误:java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session 很是悲...

    hibernate jar包参考图片

    tx = session.beginTransaction(); Employee emp = new Employee(); emp.setId(1); emp.setName("John Doe"); session.save(emp); tx.commit(); } catch (Exception e) { if (tx != null) tx.rollback(); ...

    Hibernate源代码分析(一)

    public org.hibernate.classic.Session getCurrentSession() throws HibernateException { if ( currentSessionContext == null ) { throw new HibernateException( "No CurrentSessionContext configured!" ); }...

    hibernate所需要的所有jar包

    核心包包括了hibernate-core.jar,其中包含了Hibernate的主要功能,如Session接口、Criteria API、Entity管理和Query语言等。 2. **MySql驱动包**:为了连接MySQL数据库,需要MySQL的JDBC驱动(mysql-connector-...

    hibernate的相关jar包

    Transaction transaction = session.beginTransaction(); User user = new User(); // 设置属性... session.save(user); transaction.commit(); session.close(); ``` 总结,Hibernate的相关jar包是Java开发...

    hibernate-release-5.2.2.Final

    8. **slf4j-api.jar**和相应的实现库(如logback-classic.jar):提供了日志记录框架,Hibernate的日志输出依赖于这些库。 9. **jboss-logging.jar**:JBoss的logging框架,Hibernate使用它来进行内部的日志记录。 ...

    hibernate基础jar包.rar

    6. 第三方库:Hibernate可能会依赖一些第三方库,如`slf4j-api.jar`和`logback-classic.jar`,它们用于日志记录,帮助开发者追踪和调试应用程序中的问题。 7. 配置和初始化:在使用Hibernate之前,需要通过`...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    hibernate所包含的所有jar包

    同时,通过SessionFactory创建Session对象,然后通过Session进行数据操作。Hibernate还提供了Criteria、Query和HQL等查询方式,以满足不同场景的需求。 使用Hibernate可以显著提高开发效率,减少与数据库交互的代码...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     3.5.2 访问Hibernate的Session接口  3.6 运行helloapp应用  3.6.1 创建运行本书范例的系统环境  3.6.2 创建helloapp应用的目录结构  3.6.3 把helloapp应用作为独立应用程序运行  3.6.4 把helloapp应用作为...

    hibernate对应的jar包

    7. **slf4j-api.jar**和相应的实现库(如logback-classic.jar或log4j.jar):日志记录框架,用于记录Hibernate的操作信息。 8. **mysql-connector-java.jar**或其他数据库驱动:与特定数据库(如MySQL、Oracle、...

    hibernate 常用jar 包

    它提供了对Hibernate Session和SessionFactory的接口,以及对HQL(Hibernate Query Language)的支持。 2. **hibernate-entitymanager.jar**:这个JAR包提供了JPA(Java Persistence API)的实现,是Hibernate支持...

    hibernate所需jar包

    2. **Session和Transaction管理**:Hibernate提供Session接口,它是数据库会话的代表,用于执行CRUD(创建、读取、更新、删除)操作。同时,Hibernate支持事务管理,确保数据的一致性和完整性。 3. **查询语言(HQL...

    hibernate所需的ehcache的相关jar包,一共3个jar包

    一级缓存是Hibernate Session内部的缓存,每个Session都有自己的缓存,用于存储当前Session内的实体对象。二级缓存则是SessionFactory级别的,它可以跨多个Session共享,进一步减少对数据库的访问。 Ehcache作为二...

    hibernate基本配置要用到的包

    1. **Hibernate Core**: 这是Hibernate的核心库,包含了所有必要的API和实现,如SessionFactory、Session、Transaction等。在`hibernate-core-x.x.x.Final.jar`中,你可以找到这些核心组件。 2. **JDBC驱动**: ...

Global site tag (gtag.js) - Google Analytics