通过Spring JdbcTemplate调用Sybase带结果集的存储过程

本文介绍了一个SQL Server存储过程的创建与删除过程,并通过Java代码展示了如何调用该存储过程查询数据库中特定用户的账户信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存储过程

IF OBJECT_ID('dbo.sp_xx') IS NOT NULL
BEGIN
DROP PROCEDURE dbo.sp_xx
IF OBJECT_ID('dbo.sp_xx') IS NOT NULL
PRINT '<<< FAILED DROPPING PROCEDURE dbo.sp_xx >>>'
ELSE
PRINT '<<< DROPPED PROCEDURE dbo.sp_xx >>>'
END
go
create proc sp_xx ( @userid int)
as
begin
select * from dbo.PF_Account where Id = @userid
end

EXEC sp_xx 1
go




public void aa() {
final List retList = new ArrayList();
Object object = this.getJdbcTemplate().execute(new CallableStatementCreator() {

public CallableStatement createCallableStatement(Connection arg0) throws SQLException {
CallableStatement cs = arg0.prepareCall("{call sp_xx(?)}");
return cs;
}

}, new CallableStatementCallback() {

public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
cs.setInt(1, 1);
cs.execute();

List columns = new ArrayList();
columns.add("Id");
columns.add("Name");
columns.add("Password");
columns.add("Time");
columns.add("State");

ResultSet rs = cs.getResultSet();

// 根据columns
while (rs.next()) {
Map map = new HashMap();
for (int i = 0; i < columns.size(); i++) {
map.put(columns.get(i), rs.getString(i + 1));
}
retList.add(map);
}

return retList;
}
});
Map map = null;
for (int i = 0; i < retList.size(); i++) {
map = (Map) retList.get(i);
System.out.println(map.get("Password"));
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值