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

在Spring+Hibernate项目中使用原生SQL进行查询和执行SQL处理

    博客分类:
  • J2EE
阅读更多

在用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;
      }
});

 

0
1
分享到:
评论

相关推荐

    spring+hibernate,自己封装了原生sql的处理,模仿mybatis使用

    描述中提到"自己封装了原生sql的处理,模仿mybatis使用",这意味着开发者在项目中创建了一个类似MyBatis的简单SQL解析器。MyBatis是一个轻量级的持久层框架,它允许开发者编写原生的SQL语句并将其与Java代码绑定。...

    struts+hibernate+spring留言板(SQL2000数据库)

    开发者会使用Hibernate与SQL2000进行交互,通过HQL(Hibernate Query Language)或原生的SQL语句来执行查询、插入、更新和删除操作。 **项目结构与实现** 这个项目可能包含以下几个主要部分: 1. 用户界面:使用...

    开发框架spring+struts2+hibernate+MyBatis中文帮助文档

    Spring、Struts2、Hibernate和MyBatis是Java开发领域中的四大主流框架,它们各自承担着不同的职责,共同构建了高效、灵活的企业级应用开发体系。这篇文档将深入解析这四个框架的核心概念、功能和使用方法,旨在为...

    spring+springmvc+hibernate/金融类项目源码,针对对账业务

    3. Hibernate:作为ORM框架,将Java对象映射到数据库表,简化了数据库操作,支持 Criteria 查询、HQL(Hibernate Query Language)以及原生SQL查询。 4. Gradle构建:使用Gradle进行项目构建,配置灵活,可以通过...

    springMVC+hibernate项目整合

    5. **查询**:Hibernate支持HQL(Hibernate Query Language)和Criteria API进行查询,也可以使用原生SQL。 **整合SpringMVC与Hibernate** 在SpringMVC项目中整合Hibernate,可以借助Spring的数据访问/集成模块,...

    spring+hibernate操作oracle的clob字段

    - 在处理大量CLOB数据时,可能需要优化数据库索引和查询策略。 通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。

    struts2+spring+hibernate+oracle 需要用到的基本jar包

    - Hibernate支持HQL(Hibernate Query Language),提供面向对象的查询方式,同时也支持SQL原生查询。 - 它提供了一对一、一对多、多对多等各种关系映射以及缓存机制,提高了数据访问效率。 4. **Oracle数据库**...

    基于Struts+hibernate+spring+Html5+Mysql支持多文件上传实例

    在这个实例中,Spring作为整个应用的“胶水”,协调Struts2、Hibernate和其他组件的协作,同时可能还负责事务管理,确保数据的一致性。 **HTML5**是现代Web开发的标准,特别是在文件上传方面,它的File API扩展了...

    使用struts+spring+hibernate 组装web应用

    3. **持久层**:采用Hibernate框架进行数据持久化操作,定义实体类和映射文件,利用HQL或原生SQL执行数据查询和更新操作。 4. **集成测试**:在开发过程中,不断进行单元测试和集成测试,确保各层次之间的交互符合...

    Spring3.07+Hibernate+sturts1.3测试

    在IT行业中,Spring、Hibernate...这种传统的SSH架构在过去的项目中广泛使用,尽管现在有更多现代的框架和工具(如Spring Boot、Spring Data JPA等)出现,但理解SSH仍然对理解Java Web开发的历史和原理有着重要意义。

    struts+spring+hibernate面试题

    根据给定的文件标题、描述、标签以及部分...以上内容总结了关于Struts、Spring和Hibernate框架的一些核心知识点,这些知识点对于理解和使用这三个框架非常关键,也是面试中经常会被问及的重点内容。希望对你有所帮助。

    收集的struts+spring+hibernate面试题.doc

    - **SQL 查询**:可以直接编写原生 SQL 语句进行查询,适用于复杂的查询场景。例如,`select * from users where username = ?`。 - **条件查询**:通过 Criteria API 或 HQL 的条件子句来构建动态查询。 #### 3. ...

    spring+struts+Hibernate面试题

    - **避免在 Action 类中使用实例变量**:如果必须使用实例变量,则应确保它们不会被多个线程共享。 - **使用线程本地变量**:通过 ThreadLocal 来保存每个线程的数据副本,从而实现线程安全。 - **利用 Struts ...

    idea14+maven+struts+spring+mybatis框架

    标题 "idea14+maven+struts+spring+mybatis框架" 描述的是一个使用IntelliJ IDEA 14集成开发环境,结合Maven构建工具,以及SSH...开发者可以通过这个项目学习到如何配置和使用这些框架,以及如何在IDEA中进行集成开发。

    strut spring hibernate 优缺点

    1. **查询语言限制:** Hibernate使用HQL(Hibernate Query Language)作为查询语言,尽管它与SQL非常相似,但在处理复杂查询时可能会显得力不逮心,有时需要回退到原生SQL语句。 2. **性能问题:** 在某些情况下,...

    Maven+spring+springMVC+mybatis 项目简单例子

    在本项目中,MyBatis作为数据访问层,负责与数据库交互,执行CRUD操作。MyBatis的配置文件(mybatis-config.xml)和Mapper接口/映射文件(例如UserMapper.xml)定义了数据库操作的细节。 在实际操作中,搭建这个...

    spring3 hibernate3 整合

    5. **查询语言**:除了使用原生的SQL,Spring3可以配合Hibernate3使用HQL(Hibernate Query Language)和Criteria API进行对象查询,提供了更强大的查询能力和类型安全。 6. **JPA集成**:Spring3支持JPA,如果你更...

    2012年最权威,最完整SSH面试题(Struts+Spring+Hibernate面试题问答23题,选择30题) 问答23题,选择30题(附答案)

    以上内容详细解释了 SSH (Struts + Spring + Hibernate) 中的关键知识点,包括 Hibernate 的工作原理、缓存机制、查询方式以及优化方法,Struts 的工作机制和重要性等。这些知识点对于准备 SSH 相关面试的求职者来说...

    Spring+SpringMVC+Mybatis SSM框架小项目

    1. 引入相关依赖:在项目的pom.xml文件中添加Spring、SpringMVC和Mybatis的依赖库。 2. 配置Spring:创建Spring的配置文件,如 applicationContext.xml,配置bean、数据源、事务管理器等。 3. 配置SpringMVC:创建...

Global site tag (gtag.js) - Google Analytics