- 浏览: 580725 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
JYY282:
[i][/i]
Ecshop与Shopex的比较 -
qq247890212:
我也遇见这问题了,真诡异。重新下载个猫换了就好了。 太浪费时间 ...
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
From:http://essay.iteye.com/blog/656036
Hibernate3.3.2版本中getSession().connection()已被弃用,替代方法SessionFactoryUtils.getDataSource(getSessionFactory()).getConnection()
来自类org.springframework.orm.hibernate3.SessionFactoryUtils
例子:
java.sql.Connection c = null;
java.sql.PreparedStatement ps = null;
java.sql.ResultSet rs = null;
public List method(String sql) {
List ret = new ArrayList();
try {
c = SessionFactoryUtils.getDataSource(getSessionFactory()).getConnection();
ps = c.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
.....
}
ret.add(ro);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close();
}
return ret;
}
Hibernate API中让使用doWork(Work,work),描述如下:
connection()
Deprecated. (scheduled for removal in 4.x). Replacement depends on need; for doing direct JDBC stuff use doWork(org.hibernate.jdbc.Work)
; for opening a 'temporary Session' use (TBD).
Work接口的execute()方法用于执行直接通过JDBC API来访问数据库的操作:
public interface Work {
//直接通过JDBC API来访问数据库的操作
public void execute(Connection connection) throws SQLException;
}
Session的doWork(Work work)方法用于执行Work对象指定的操作,即调用Work对象的execute()方法。Session会把当前使用的数据库连接传给execute()方法。
过程如下:
Transaction tx=session.beginTransaction();
//定义一个匿名类,实现了Work接口
Work work=new Work(){
public void execute(Connection connection)throws SQLException{
//通过JDBC API执行用于批量更新的SQL语句
PreparedStatement stmt=connection
.prepareStatement("update CUSTOMERS set AGE=AGE+1 "
+"where AGE>0 ");
stmt.executeUpdate();
}
};
//执行work
session.doWork(work);
tx.commit();
当通过JDBC API中的PreparedStatement接口来执行SQL语句时,SQL语句中涉及到的数据不会被加载到Session的缓存中,因此不会占用内存空间。
发表评论
-
jBoss下java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator
2012-01-17 18:09 1677项目中使用了hibernate-distribution-3. ... -
JavaScript去除空格的三种方法 (trim)
2012-02-28 11:15 781方法一:个人认为最好的方法.采用的是正则表达式,这是最核 ... -
学习Oracle中Blob和Clob一点点心得
2012-02-28 11:19 1062Blob是指二进制大对象也就是英文Binary Larg ... -
oracle to_date()用法
2012-02-28 11:19 11921、select to_date('2011-01-01 00 ... -
racle to_char格式化函数
2012-02-28 11:19 901Postgres 格式化函数提供一套有效的工具用于把各种数据类 ... -
Oracle数据类型
2011-12-05 17:40 0ORACLE的数据类型 -- ORACLE的数据类型常用的数据 ... -
如果要得到一个表的某一列的sqltype
2011-12-05 17:38 0如果要得到一个表的某一列的sqltype,有两种方式。 之所以 ... -
Oracle 配置TNS
2011-12-02 11:36 818编辑相应目录的tnsnames.ora文件:oracle10g ... -
Java删除文件及文件夹
2011-12-01 10:05 897Java删除文件及文件夹: p ... -
SQLException: ORA-01460: unimplemented or unreasonable conversion reque
2011-11-30 18:04 2492From:http://lianj-lee.iteye. ... -
Java中文乱码
2011-12-01 10:05 863在Java Web系统中出现中 ... -
Eclipse项目的叹号和X号问题解决方法
2011-11-30 13:30 1930经常看到一些人遇到这个问题,自己也偶尔会碰到,故总结了该问题的 ... -
JSTL的EL表达式失效:${ctx}
2011-12-01 10:06 1791项目中使用了JSTL1.1,然后在web.xml中使用了 ... -
诡异:ClassNotFoundException: org.springframework.web.filter.CharacterEncoding
2011-12-01 10:07 4998java.lang.ClassNotFoundExceptio ... -
java.lang.NoClassDefFoundError: javax/el/ELException
2011-12-01 10:08 1483From:http://blog.csdn.net/gtuu0 ... -
java.lang.ClassNotFoundException: javax.el.ELException
2011-11-30 10:22 0在myeclipse 7.5中,如果把jsp-api.jar ... -
java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit
2011-11-30 10:10 0java.lang.NullPointerExcep ... -
使用JSTL标签来访问list并判断list中的选中项
2011-11-29 10:15 1126From:http://www.abc188.com/info ... -
org.springframework.web.HttpMediaTypeNotAcceptableException:
2011-11-29 10:13 11201From:http://cmzx3444.iteye.com/ ... -
将前台json对象传入java后台
2011-11-29 10:01 1527http://wangqinghua123.iteye.com ...
相关推荐
映射文件可以替代注解方式,但在现代应用中,更常见的是使用注解进行映射。 然后,使用SessionFactory创建Session对象,Session是与数据库交互的主要接口。通过Session,我们可以执行CRUD操作(创建、读取、更新、...
1. **保存(Save)**:`session.save()`或`session.persist()`方法用于将新对象插入数据库。 2. **更新(Update)**:`session.update()`用于更新已存在的对象。 3. **删除(Delete)**:`session.delete()`移除...
7. SessionFactory在Hibernate中是线程安全的,负责生成Session实例。 8. Hibernate的默认XML配置文件名为hibernate.cfg.xml。 9. Hibernate不直接处理事务,而是依赖于JDBC或容器提供的事务管理。 10. Spring的...
- Hibernate 从3.0版本开始支持注解配置,可以直接在Java类上标注属性,替代`.hbm.xml`文件。 - 示例: ```java @Entity @Table(name = "entity_table") public class Entity { @Id @GeneratedValue...
- **Session**:相当于 JDBC 中的 Connection,用于执行数据库操作。 - **Transaction**:处理数据库事务。 - **Query**:提供了对 HQL(Hibernate 查询语言)和 Criteria API 的支持,可以替代 Statement 和 ...
在Java的持久层框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它能够帮助开发者将数据库操作与业务逻辑解耦。在实际应用中,为了提高数据库连接的效率和系统的性能,我们通常会使用连接池来管理数据库...
在现代的Hibernate实践中,更倾向于使用注解(Annotations)来替代XML映射。 然后,我们需要一个SessionFactory,它是Hibernate的主要工作单元,负责创建Session。SessionFactory通过读取配置文件和映射信息被初始...
其中,重要的属性包括`hibernate.connection.driver_class`(数据库驱动)、`hibernate.connection.url`(数据库URL)、`hibernate.dialect`(数据库方言)等。 ### 4. 实体类与映射文件 - **实体类**: 是与数据库...
`Session`提供了操作数据库的方法,如查询、插入、更新和删除。 5. **持久化操作**: 在`HiberTest`类中,你可以看到如何创建`Session`,然后进行CRUD操作。例如,添加用户: ```java Session session = ...
7. HQL(Hibernate Query Language)或 Criteria API:这两者是Hibernate提供的查询语言,用于替代SQL,使得数据库查询更加面向对象。 现在,让我们看一个简单的使用流程: 1. 加载配置:程序启动时,首先加载`...
通过ORM,Hibernate简化了Java应用与数据库交互的过程,替代了传统的JDBC编码方式,提供了更为高级的数据库访问API。 #### 二、为什么使用Hibernate? 1. **简化数据库操作**:Hibernate自动处理SQL语句的生成,...
数据库连接的系统配置技术在IT领域中至关重要,尤其是在使用Hibernate框架进行对象关系映射时。Hibernate是一个流行的Java持久层框架,它允许开发人员通过面向对象的方式操作数据库,从而简化了数据库交互。本讲将...
Hibernate提供了一种面向对象的查询方式——Criteria API,可替代传统的HQL(Hibernate Query Language)。Criteria查询更加灵活,且无需预先编写查询语句。 ```java Criteria criteria = session.createCriteria...
- **注解**:在Java 5之后,Hibernate支持使用注解来替代XML映射文件,使得代码更加简洁易懂。 **4. 查询语言** - **HQL(Hibernate Query Language)**:类似于SQL的一种面向对象的查询语言。 - **Criteria API...
`Session`类是与数据库交互的主要接口,类似于JDBC中的`Connection`。它支持CRUD操作,如`save()`用于添加数据,`update()`用于修改数据,`delete()`用于删除数据,而`get()`则根据ID获取对象。值得注意的是,`...
Hibernate通过Session接口提供了一种面向对象的方式来管理和持久化Java类,这些类通常对应于数据库中的表。在这个过程中,开发者甚至不需要直接了解底层数据库的具体结构。 ### 2.1 Hibernate配置文件 Hibernate的...
**标签“hibernate API”**指的是使用Hibernate框架时涉及的API接口和方法,包括SessionFactory的get Session方法,Session的save、update、delete、load、query等操作,以及Transaction的begin、commit和rollback等...
Hibernate不仅适用于Java桌面应用,还能在Servlet/JSP的Web应用中使用,甚至在JavaEE环境中作为数据持久化的解决方案,替代传统的CMP组件。 **二、Hibernate的优势** 1. **简化数据库操作**:Hibernate通过封装JDBC...
需要注意的是,在Hibernate3之后的版本中,Session的connection()方法虽然还存在,但已经被废弃,并不推荐使用。Hibernate提供了替代方案,例如org.hibernate.jdbc.Work接口,它允许直接通过JDBC API来访问数据库。...
这里我们使用了JPA注解来替代了Hibernate的注解,这在Spring项目中更加常见,因为Spring与JPA有较好的集成支持。 #### 第四步:配置Spring和Hibernate 配置Spring容器来管理Bean的生命周期,同时配置Hibernate以...