社区
Java EE
帖子详情
请问hibernate中怎么获取存储过程返回的值?
zz_75
2006-08-11 03:13:16
存储过程是这样调用的
tx = session.beginTransaction();
PreparedStatement st = session.connection().prepareStatement("{call Register(?)}");
st.execute();
tx.commit();
“?”为要返回的值是int型,
我怎么能获取这个值
...全文
605
2
打赏
收藏
请问hibernate中怎么获取存储过程返回的值?
存储过程是这样调用的 tx = session.beginTransaction(); PreparedStatement st = session.connection().prepareStatement("{call Register(?)}"); st.execute(); tx.commit(); “?”为要返回的值是int型, 我怎么能获取这个值
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
majianglin
2006-08-12
打赏
举报
回复
我调用存储过程和你的方法不一样,Sorry,我的代码帖出来给你,用的是Hibernate3.05
实际上我这个方法是用的JDBC的方法调用的
=============================================================
package com.dc.tirip.dis.configuration.dao;
import java.sql.CallableStatement;
import java.sql.SQLException;
import java.sql.Types;
import com.dc.tirip.common.framework.dbconfig.HibernateUtil;
import com.dc.tirip.common.logging.ILogger;
public class DisServiceConfigDao {
/**
* 日志记录
*/
private static ILogger log = ILogger.Factory.getLogger(DisServiceConfigDao.class);
/**
* 获取服务配置,注意参数顺序
*
* @param channelId
* 渠道标识
* @param serviceId
* 服务标识
* @param platformId
* 平台标识
* @param channelType
* 渠道类型
* @param nsrsbh
* 纳税人识别号
* @return
*/
public static DisServiceConfig getDisServiceConfig(String channelId, String serviceId, String platformId,
String channelType, String nsrsbh) {
DisServiceConfig serviceConfig = new DisServiceConfig();
serviceConfig.setChannelId(channelId);
serviceConfig.setServiceId(serviceId);
serviceConfig.setPlatformId(platformId);
serviceConfig.setChannelType(channelType);
serviceConfig.setNsrsbh(nsrsbh);
int returnCode = 101;
CallableStatement cstmt = null;
try {
// 取得Hibernate数据库连接
java.sql.Connection conn = HibernateUtil.currentSession().connection();
// 准备存储过程
cstmt = conn.prepareCall(
"begin :1 := P_XT_GET_SERVICE_CONFIG(:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14); end;");
// "{ ?=call P_XT_GET_SERVICE_CONFIG(?,?,?,?,?,?,?,?,?,?,?,?,?) }");
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.registerOutParameter(7, Types.VARCHAR);
cstmt.registerOutParameter(8, Types.VARCHAR);
cstmt.registerOutParameter(9, Types.VARCHAR);
cstmt.registerOutParameter(10, Types.VARCHAR);
cstmt.registerOutParameter(11, Types.VARCHAR);
cstmt.registerOutParameter(12, Types.VARCHAR);
cstmt.registerOutParameter(13, Types.VARCHAR);
cstmt.registerOutParameter(14, Types.INTEGER);
cstmt.setString(2, channelId);
cstmt.setString(3, serviceId);
cstmt.setString(4, platformId);
cstmt.setString(5, channelType);
cstmt.setString(6, nsrsbh);
// 执行存储过程
cstmt.execute();
// 取得输出参数
returnCode = cstmt.getInt(1);
serviceConfig.setIsTransform(cstmt.getString(7));
serviceConfig.setIsVerifyDataLogic(cstmt.getString(8));
serviceConfig.setIsVerifyDataSemantic(cstmt.getString(9));
serviceConfig.setIsVerifyDataCRC(cstmt.getString(10));
serviceConfig.setZipType(cstmt.getString(11));
serviceConfig.setEncryptType(cstmt.getString(12));
serviceConfig.setCodeType(cstmt.getString(13));
serviceConfig.setTransactPriority(new Integer(cstmt.getInt(14)));
} catch (SQLException e) {
log.warn("调用存储过程出错,无法获得配置:", e);
}
finally
{
if(cstmt != null)
{
try
{
cstmt.close();
}
catch(SQLException e)
{
log.warn("调用存储过程出错,无法获得配置:", e);
}
cstmt = null;
}
}
// 设置执行结果
serviceConfig.setReturnCode(returnCode);
if (log.isDebugEnabled()) {
log.debug(serviceConfig.toString());
}
return serviceConfig;
}
public static void main(String[] s) {
String channelId = "S110";
String serviceId = "0";// "SBTY31";
String platformId = "0S00";
String channelType = "J";
String nsrsbh = "0";
DisServiceConfig businessConfig = getDisServiceConfig(channelId, serviceId, platformId, channelType, nsrsbh);
log.debug("businessConfig=" + businessConfig.toString());
}
}
majianglin
2006-08-12
打赏
举报
回复
int returnValue = st.getInt(1);
hibernate
query调用oracle
存储过程
使用
hibernate
的query调用oracle的
存储过程
/function,包含例子,源码以及数据库文件
Hibernate
使用
存储过程
在
hibernate
中
使用
存储过程
,调用
存储过程
hibernate
调用
存储过程
hibernate
调用
存储过程
hibernate
调用
存储过程
hibernate
调
存储过程
的方法.txt
hibernate
调
存储过程
的方法,这个方法里包含了调IN和out参数的两种方法
1、
hibernate
调用
存储过程
1
1、使用
hibernate
调用不带参数
返回
值
的
存储过程
方法public Boolean doIn
Hibernate
(Session session) t
Java EE
67,538
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章