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

来源:互联网 发布:毕业生找工作知乎 编辑:程序博客网 时间:2024/06/06 03:54

注意点:第一个参数为游标,用占位符代替,?= 而且,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 preformanceconn.setReadOnly(true); // for preformancesql.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;}}



0 0
原创粉丝点击