java程序中调用带有输入输出值的SQL函数

注意点:第一个参数为游标,用占位符代替,?= 而且,call 必须小写,不能为CALL ,,函数()中的占位符表示的是函数所需要传入的参数

public class GetTvbMessageUtil {
	private static final Log log = LogFactory.getLog(GetTvbMessageUtil.class);

	public static String GetTvbLoginId(String input) {
		log.info("start Get TvbLoginId!");
		Session session = null;
		Connection conn = null;
		CallableStatement cs = null;
		StringBuffer sql = new StringBuffer();
		String result = "";
		try {
			session = DBUtil.currentSession();
			conn = session.connection();
			conn.setAutoCommit(false); // for preformance
			conn.setReadOnly(true); // for preformance
			sql.append("{?=call TVB_PKG.sf_get_TVB_login_ID@dsbs_prd(?)}");
			cs = conn.prepareCall(sql.toString());
			cs.setString(2, input);
            cs.registerOutParameter(1, Types.VARCHAR);
        	log.info("loginID=" + input);
			cs.execute();
			conn.commit();
			log.info("return=" + cs.getString(1));
			log.info("Get Tvb LoginId End!");
			result = cs.getString(1);
		}

		catch (Exception ex) {
			log.error("Exception: " + ex.toString(), ex);
			throw new AcctAssociateException(ex.getMessage());
		} finally {
			DBUtil.closeStatement(cs);
			DBUtil.closeSession(session);
		}
		return result;
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值