ssh调用存储过程
ssh的集成项目中如何调用mysql中既带输入参数又带输出参数的存储过程drop procedure if exists pr_add;
DELIMITER $$
create procedure pr_add
(
n varchar(20),
pwd varchar(20),
out cc varchar(20),
out bb varchar(20)
)
begin
select loginName as cc,loginPwd as bb from kcwms.userrole where loginName=n and loginPwd=pwd;
end;
$$
call pr_add('admin','admin',@eaec,@bb); --------------------编程问答-------------------- 请求指点 --------------------编程问答-------------------- oracle的,mysql应该类似吧,还有一种方法是在hibernate中配置
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
Transaction trans = session.beginTransaction();
Connection con = session.connection();
CallableStatement st = con.prepareCall("{call my_proc(?,?,?)}");
st.setInt(1, 7788);
st.registerOutParameter(2, OracleTypes.NUMBER);
st.registerOutParameter(3, OracleTypes.VARCHAR);
st.execute();
System.out.println(st.getFloat(2));
System.out.println(st.getString(3));
st.close();
con.close();
trans.commit(); --------------------编程问答-------------------- public int[] recharge(String cn, String cardPwd, String ip, int zoneId)
throws Exception {
CallableStatement call = null;
int[] result = new int[2];
try {
String cal = "{call USER_CARDCHARGE(?,?,?,?,?,?)}";
Connection conn = DBConnection.getConnection();
call = conn.prepareCall(cal);
call.setString(1, cn);
call.setString(2, cardPwd);
call.setString(3, ip);
call.setLong(4, zoneId);
call.registerOutParameter(5, 4);
call.registerOutParameter(6, 4);
call.executeUpdate();
result[0] = call.getInt(5);
result[1] = call.getInt(6);
} catch (Exception e) {
e.printStackTrace();
}
return result;
} --------------------编程问答--------------------
st.registerOutParameter(2, OracleTypes.NUMBER);
为什么报空指针呀?
补充:Java , Java EE