在Hibernate中用jdbc做存储过程

王朝学院·作者佚名  2009-12-20
窄屏简体版  字體: |||超大  

package com.rxtc.bi.app.crm.rep.dao.impl;

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.orm.hibernate3.SessionFactoryUtils;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

/**

*

* <pre>

* Title:在hibernate中用存储过程

* 只是要绕过hibernate 调用jdbc API,当然事务还是由hibernate业管理:

假如我们创建了以下存储过程:

create or replace procedure batchUpdateCustomer(p_age in number) as

begin

update CUSTOMERS set AGE=AGE+1 where AGE> p_age;

end;

存储过程中有一个参数p_age,代表客户的年龄,应用程序可按照以下方式调用存储过程:

* Description: 程序功能的描述

* </pre>

* @author lichunmei licm@sagessesoft.com

* @version 1.00.00

* <pre>

* 修改记录

* 修改后版本: 修改人: 修改日期: 修改内容:

* </pre>

*/

public class Text extends HibernateDaoSupport {

public void proceduce(){

try {

DataSource ds= SessionFactoryUtils.getDataSource(getSessionFactory());

Connection conn=ds.getConnection();

String sql = "{call batchUpdateCustomer(?)}";

CallableStatement cstmt = conn.prepareCall(sql);

cstmt.setInt(1, 0);//把年龄参数设置为0;

cstmt.executeUpdate();

//ResultSet rs = cstmt.executeQuery(sql);若是查询的时候

conn.commit();

//rs.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xixi_666/archive/2009/12/18/5029768.aspx

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航