共有两种方式
第一种
----------------------------------
----------------------------------
---
CallableStatement cstmt =
hibernateTemplate.getSessionFactory
().getCurrentSession().connection
().prepareCall("{call proc_name}");
cstmt.executeUpdate();
----------------------------------
----------------------------------
----
第二种
----------------------------------
----------------------------------
----
hibernateTemplate.execute(
new HibernateCallback()
{
public Object doInHibernate
(Session session) throws
SQLException
{
CallableStatement cs =
session.connection().prepareCall
("{call proc_name}");
cs.executeUpdate();
return null;
}
}
);
hibernate3.0以上提供了两种方式执行存储过程。
第一种 :用JDBC 方式
Session session =HibernateSessionFactory.getSession(); //获取hibernate会话
Connection conn = session.connection(); // 用session对象获取连接
ResultSet rs =null;
try
{
CallableStatement call = conn.prepareCall("{Call pro_getManager(?,?)}");
call.setString(1, "admin");
call.setString(2, "admin");
rs = call.executeQuery();
}
catch (Exception e)
{
e.printStackTrace();
}finally
{
rs.close();//关闭
session.close();//关闭连接
HibernateSessionFactory.closeSession(); //关闭会话
}
这种方式本人感觉与hibernate结合不很紧密,还难以控制,还要自己控制关闭
第二种: 用hibernate中SQLQuery 接口执行,其实与执行sql没有两样。
Session session =HibernateSessionFactory.getSession(); //获取hibernate会话
String procName="{Call pro_getManager(?,?) }";
SQLQuery query = session.createSQLQuery(proc);
query.setString(0, "admin");
query.setString(1, "admin");
List list =query.list();
session.close();
HibernateSessionFactory.closeSession();
SQLQuery 接口功能很强大吧
分享到:
相关推荐
在Hibernate框架中,`HibernateTemplate`提供了一种更为简洁、易于使用的API,用于执行基本的CRUD(创建、读取、更新、删除)操作。对于批量删除数据,`HibernateTemplate`提供了`bulkUpdate()`方法,该方法通过执行...
例如,JdbcTemplate提供了模板方法,用于执行SQL查询、更新和存储过程,而NamedParameterJdbcTemplate则允许使用命名参数,使得SQL语句更易读。 接下来,Spring集成ORM框架,如Hibernate和MyBatis,极大地提高了...
在Spring框架中,持久化是将应用程序数据存储到数据库的关键环节。Spring提供了多种持久化模板,如JdbcTemplate和HibernateTemplate,以简化数据库操作并减少代码中的样板代码。这两个模板都是Spring JDBC模块的一...
4.3版本带来了JPA 2.1的支持,包括存储过程调用、新查询语言JPQL的增强以及更好的Caching机制。此外,它还优化了性能,提高了对大数据集的处理能力。 当Spring和Hibernate结合使用时,通常会通过Spring的...
虽然Hibernate主要处理对象和关系的映射,但也可以支持数据库存储过程的调用。通过`Session`对象的`doWork()`方法,我们可以传递一个实现了`Work`接口的实例,然后在其中执行自定义的SQL(包括存储过程)。这使得在...
在学习和使用过程中,应关注如何配置和管理事务,以及如何优雅地处理数据库查询和更新操作。同时,对于Spring的依赖注入和AOP(面向切面编程)特性,也需要有深入的理解,以便更好地利用Spring MVC和Hibernate的优势...
例如,定义DataSource、SessionFactory和HibernateTemplate等Bean,其中DataSource用于存储数据库连接信息,SessionFactory则是Hibernate的主要入口点,而HibernateTemplate则为Spring提供了一组操作Hibernate的便捷...
11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入Lob类型的数据 11.3.4 以块数据方式读取Lob数据 11.3.5 以流数据方式读取Lob数据 11.4 自增键和...
11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入Lob类型的数据 11.3.4 以块数据方式读取Lob数据 11.3.5 以流数据方式读取Lob数据 11.4 自增键和...
使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6...
使用SimpleJdbcCall调用存储过程 11.5.6. 声明SimpleJdbcCall使用的参数 11.5.7. 如何定义SqlParameters 11.5.8. 使用SimpleJdbcCall调用内置函数 11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 11.6...
2. **使用HibernateTemplate**:通过Spring提供的HibernateTemplate,简化了数据库操作,避免了直接操作Session。 3. **注入DAO组件**:同样采用DI,将DAO组件注入到业务逻辑组件中,处理数据库操作。 4. **注入...
在DAO层,我们将使用Hibernate的Session接口来进行CRUD(创建、读取、更新、删除)操作,这些操作可以通过Spring的JdbcTemplate或者HibernateTemplate进行封装,避免直接暴露Session,从而提高代码的可维护性。...
该类的关键方法是`saveOrUpdate()`,它接受一个`Object`类型的参数,并使用`HibernateTemplate`对象来执行实际的保存或更新操作。`HibernateTemplate`是Spring框架提供的用于操作Hibernate的一个工具类,它简化了...
- **使用 HibernateTemplate 或者 SessionFactory 进行 CRUD 操作**:Spring 提供了 HibernateTemplate 来简化 Hibernate 的使用,也可以直接使用 SessionFactory 执行更复杂的操作。 - **事务管理**:Spring 提供了...
DAO模式是一种常用的设计模式,它的主要目标是提供一个接口,隐藏底层数据存储的细节,使得业务逻辑代码可以独立于数据源进行操作。在SSH架构中,Spring作为IoC(Inversion of Control)容器,负责管理DAO对象的生命...
`getAllRowCount()`则直接使用`HibernateTemplate.find(hql)`的大小来获取记录总数。 3. **分页信息类**: `PageBean`类是用来存储分页信息的容器。它包含了当前页的记录列表`list`,总记录数`allRow`,总页数`...
在Spring MVC中,可以通过Spring的HibernateTemplate或SessionFactoryBean进行集成,实现数据访问层的事务化和对象管理。 MySQL是一个广泛使用的开源关系型数据库管理系统,以其高性能、稳定性及易用性著称。在Web...
MySQL 5版本提供了一套强大的数据管理工具和优化,支持事务处理、存储过程等高级特性。 4. **整合步骤**: - **配置环境**:首先,确保安装了Java运行环境(JRE)和Java开发工具(JDK),并设置好环境变量。 - **...
同时,Spring的HibernateTemplate或HibernateDaoSupport类可以帮助我们简化数据访问操作,减少对Hibernate API的直接调用。 Spring Security(原名Acegi Security)是安全控制的核心。在整合Spring Security时,...