定义存储过程
说明:根据用户id,计算用户的账户总金额(totalMoney)和消费金额(usedMoney)。
CREATE PROCEDURE `calcMemberMoney`(IN userId VARCHAR(32),OUT totalMoney BIGINT,OUT usedMoney BIGINT)
BEGIN
......
END$$
Java调用
String userId =
"123456"
Long totalMoney =
0L
Long usedMoney =
0L
// 取得数据库链接
Connection conn = SessionFactoryUtils
.getDataSource(getSessionFactory())
.getConnection()
// 创建callableStatement
CallableStatement
call = conn
.prepareCall(
"{Call calcMemberMoney(?,?,?)}")
// 设置入参,参数index从
1开始
call.setString(
1, userId)
// 注册出参的类型
call.registerOutParameter(
2, java
.sql.Types.BIGINT)
call.registerOutParameter(
3, java
.sql.Types.BIGINT)
// 执行
call.execute()
//取得出参的值,注意参数index从
1开始,第
2,
3的值是出参
totalMoney =
call.getLong(
2)
usedMoney =
call.getLong(
3)
// 关闭连接
call.close()
conn
.close()