在用Spring整合Hibernate时,由于Hinernate的局限性有些SQL问题用它的HQL是很难解决的,并且有些本地数据库的本地函数在hibernate中也无法使用,故可以通过spring的JDBC方式来绕开Hibernate,并且这样依然享受spring的事务管理。
当我们需要用原生SQL进行查询时可以调用session.createSQLQuery(String sql)方式处理,里面的sql语句可以使用数据库本地的函数。具体代码如下:
final StringBuilder hsql = new StringBuilder();
hsql.append(sql);
List list = null;
try {
st = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = null;
try {
query = session.createSQLQuery(hsql.toString());
} catch (Throwable ex) {
ex.printStackTrace();
}
return query.list();
}
});
} catch (Exception e) {
e.printStackTrace();
}
当执行的不是SQL查询而是执行SQL的其他操作的时候,可以获取connection的方式来执行:
getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)throws HibernateException, SQLException {
Connection conn = session.connection();
conn.prepareStatement(sql).execute();
return null;
}
});
分享到:
相关推荐
描述中提到"自己封装了原生sql的处理,模仿mybatis使用",这意味着开发者在项目中创建了一个类似MyBatis的简单SQL解析器。MyBatis是一个轻量级的持久层框架,它允许开发者编写原生的SQL语句并将其与Java代码绑定。...
开发者会使用Hibernate与SQL2000进行交互,通过HQL(Hibernate Query Language)或原生的SQL语句来执行查询、插入、更新和删除操作。 **项目结构与实现** 这个项目可能包含以下几个主要部分: 1. 用户界面:使用...
Spring、Struts2、Hibernate和MyBatis是Java开发领域中的四大主流框架,它们各自承担着不同的职责,共同构建了高效、灵活的企业级应用开发体系。这篇文档将深入解析这四个框架的核心概念、功能和使用方法,旨在为...
3. Hibernate:作为ORM框架,将Java对象映射到数据库表,简化了数据库操作,支持 Criteria 查询、HQL(Hibernate Query Language)以及原生SQL查询。 4. Gradle构建:使用Gradle进行项目构建,配置灵活,可以通过...
5. **查询**:Hibernate支持HQL(Hibernate Query Language)和Criteria API进行查询,也可以使用原生SQL。 **整合SpringMVC与Hibernate** 在SpringMVC项目中整合Hibernate,可以借助Spring的数据访问/集成模块,...
- 在处理大量CLOB数据时,可能需要优化数据库索引和查询策略。 通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。
- Hibernate支持HQL(Hibernate Query Language),提供面向对象的查询方式,同时也支持SQL原生查询。 - 它提供了一对一、一对多、多对多等各种关系映射以及缓存机制,提高了数据访问效率。 4. **Oracle数据库**...
在这个实例中,Spring作为整个应用的“胶水”,协调Struts2、Hibernate和其他组件的协作,同时可能还负责事务管理,确保数据的一致性。 **HTML5**是现代Web开发的标准,特别是在文件上传方面,它的File API扩展了...
3. **持久层**:采用Hibernate框架进行数据持久化操作,定义实体类和映射文件,利用HQL或原生SQL执行数据查询和更新操作。 4. **集成测试**:在开发过程中,不断进行单元测试和集成测试,确保各层次之间的交互符合...
在IT行业中,Spring、Hibernate...这种传统的SSH架构在过去的项目中广泛使用,尽管现在有更多现代的框架和工具(如Spring Boot、Spring Data JPA等)出现,但理解SSH仍然对理解Java Web开发的历史和原理有着重要意义。
根据给定的文件标题、描述、标签以及部分...以上内容总结了关于Struts、Spring和Hibernate框架的一些核心知识点,这些知识点对于理解和使用这三个框架非常关键,也是面试中经常会被问及的重点内容。希望对你有所帮助。
- **SQL 查询**:可以直接编写原生 SQL 语句进行查询,适用于复杂的查询场景。例如,`select * from users where username = ?`。 - **条件查询**:通过 Criteria API 或 HQL 的条件子句来构建动态查询。 #### 3. ...
- **避免在 Action 类中使用实例变量**:如果必须使用实例变量,则应确保它们不会被多个线程共享。 - **使用线程本地变量**:通过 ThreadLocal 来保存每个线程的数据副本,从而实现线程安全。 - **利用 Struts ...
标题 "idea14+maven+struts+spring+mybatis框架" 描述的是一个使用IntelliJ IDEA 14集成开发环境,结合Maven构建工具,以及SSH...开发者可以通过这个项目学习到如何配置和使用这些框架,以及如何在IDEA中进行集成开发。
1. **查询语言限制:** Hibernate使用HQL(Hibernate Query Language)作为查询语言,尽管它与SQL非常相似,但在处理复杂查询时可能会显得力不逮心,有时需要回退到原生SQL语句。 2. **性能问题:** 在某些情况下,...
在本项目中,MyBatis作为数据访问层,负责与数据库交互,执行CRUD操作。MyBatis的配置文件(mybatis-config.xml)和Mapper接口/映射文件(例如UserMapper.xml)定义了数据库操作的细节。 在实际操作中,搭建这个...
5. **查询语言**:除了使用原生的SQL,Spring3可以配合Hibernate3使用HQL(Hibernate Query Language)和Criteria API进行对象查询,提供了更强大的查询能力和类型安全。 6. **JPA集成**:Spring3支持JPA,如果你更...
以上内容详细解释了 SSH (Struts + Spring + Hibernate) 中的关键知识点,包括 Hibernate 的工作原理、缓存机制、查询方式以及优化方法,Struts 的工作机制和重要性等。这些知识点对于准备 SSH 相关面试的求职者来说...
1. 引入相关依赖:在项目的pom.xml文件中添加Spring、SpringMVC和Mybatis的依赖库。 2. 配置Spring:创建Spring的配置文件,如 applicationContext.xml,配置bean、数据源、事务管理器等。 3. 配置SpringMVC:创建...