Java后台获取存储过程out输出值的方法:
String hql = "{Call D_VALID_PRICE_RANGE(?,?)}";
Connection myConnect = SessionFactoryUtils.getDataSource(super.getSessionFactory()).getConnection();
CallableStatement cStmt = myConnect.prepareCall(hql);
cStmt.registerOutParameter(1, java.sql.Types.INTEGER);
cStmt.registerOutParameter(2, java.sql.Types.VARCHAR);
cStmt.execute();
int a = cStmt.getInt(1);
String ss = cStmt.getString(2);
System.out.println(a);
System.out.println(ss);
Java后台获取存储过程结果集的方法:
存储过程:
BEGIN
declare stmt varchar(2000);
set @sql = concat('select * fromtt_dm_prod_offer');
prepare stmt from @sql;
execute stmt;
END
Java 方法:
String hql = "{Call A_TEST_PROD()}";
Connection myConnect = SessionFactoryUtils.getDataSource(super.getSessionFactory()).getConnection();
CallableStatement cStmt = myConnect.prepareCall(hql);
cStmt.execute();
ResultSet rs1 = cStmt.getResultSet();
while (rs1.next()) {
System.out.println(rs1.getString("price_id") + ""+ rs1.getString("prod_code"));
}
rs1.close();