文章出处:http://www.diybl.com/course/3_program/java/javajs/2008324/106036.html

hibernate3.0以上提供了两种方式执行存储过程。

第一种 :用JDBC方式(获得 Connection 对象)

[转] Hibernate3.0以上中执行存储过程Session session =HibernateSessionFactory.getSession(); //获取hibernate会话
[转] Hibernate3.0以上中执行存储过程

[转] Hibernate3.0以上中执行存储过程Connection conn 
= session.connection(); // 用session对象获取连接
[转] Hibernate3.0以上中执行存储过程

[转] Hibernate3.0以上中执行存储过程ResultSet rs 
=null;
[转] Hibernate3.0以上中执行存储过程
[转] Hibernate3.0以上中执行存储过程
try
这种方式本人感觉与hibernate结合不很紧密,还难以控制,还要自己控制关闭


 
第二种: 用hibernate中SQLQuery 接口执行,其实与执行sql没有两样。

[转] Hibernate3.0以上中执行存储过程Session session =HibernateSessionFactory.getSession(); //获取hibernate会话
[转] Hibernate3.0以上中执行存储过程

[转] Hibernate3.0以上中执行存储过程String procName
="{Call pro_getManager(?,?) }"
[转] Hibernate3.0以上中执行存储过程
[转] Hibernate3.0以上中执行存储过程SQLQuery query 
= session.createSQLQuery(proc);
[转] Hibernate3.0以上中执行存储过程query.setString(
0"admin");
[转] Hibernate3.0以上中执行存储过程query.setString(
1"admin");
[转] Hibernate3.0以上中执行存储过程List list 
=query.list();
[转] Hibernate3.0以上中执行存储过程
[转] Hibernate3.0以上中执行存储过程session.close();
[转] Hibernate3.0以上中执行存储过程
[转] Hibernate3.0以上中执行存储过程HibernateSessionFactory.closeSession();
[转] Hibernate3.0以上中执行存储过程
[转] Hibernate3.0以上中执行存储过程SQLQuery 接口功能很强大吧



APIConnection 方法:
CallableStatement prepareCall(String sql) throws SQLException

创建一个 CallableStatement 对象来调用数据库存储过程。CallableStatement 对象提供了设置其 IN 和 OUT 参数的方法,以及用来执行调用存储过程的方法。

 

public interface CallableStatement extends PreparedStatement

用于执行 SQL 存储过程的接口。JDBC API 提供了一个存储过程 SQL 转义语法,该语法允许对所有 RDBMS 使用标准方式调用存储过程。此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。如果使用结果参数,则必须将其注册为 OUT 参数。其他参数可用于输入、输出或同时用于二者。参数是根据编号按顺序引用的,第一个参数的编号是 1。

   {?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
   {call <procedure-name>[(<arg1>,<arg2>, ...)]}

 IN 参数值是使用继承自 PreparedStatement 的 set 方法设置的。在执行存储过程之前,必须注册所有 OUT 参数的类型;它们的值是在执行后通过此类提供的 get 方法获取的。

CallableStatement 可以返回一个 ResultSet 对象或多个 ResultSet 对象。多个 ResultSet 对象是使用继承自 Statement 的操作处理的。

相关文章:

  • 2021-09-26
  • 2021-12-11
  • 2021-10-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
  • 2021-11-18
相关资源
相似解决方案