spring jdbcTemplate调用存储过程

本文介绍了两种从数据库中获取物流信息的方法。第一种方法使用JdbcTemplate执行存储过程,并通过PreparedStatementCallback处理结果集。第二种方法直接利用Connection对象调用存储过程并处理返回的ResultSet。这两种方法都实现了物流状态的查询。

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

第一种方式: 
List<Map<String,Object>> locationInfo=null; 
locationInfo=(List<Map<String, Object>>) jdbcTemplate.execute("exec PROC_TaoBAO_State ?", new PreparedStatementCallback(){ 
public Object doInPreparedStatement(PreparedStatement stmt) throws SQLException, DataAccessException { 
List<HashMap<String,Object>> infoList=new ArrayList<HashMap<String,Object>>(); 
stmt.setString(1,mailNo); 
ResultSet rs = stmt.executeQuery(); 
while(rs.next()){ 
     Map<String,Object> infoMap=new HashMap<String,Object>(); 
     infoMap.put("acceptAddress",getString(rs.getString("位置"))); 
     infoMap.put("remark",rs.getString("状态")); 
     infoMap.put("acceptTime",getString(rs.getString("跟踪时间"))); 
              infoList.add((HashMap<String, Object>) infoMap); 

return infoList; 
}}); 
return locationInfo; 


第二种方式: 
DataSource dataSource = jdbcTemplate.getDataSource(); 
Connection conn=null; 
Map ddMap=new HashMap(); 
conn=dataSource.getConnection(); 
CallableStatement cs = conn.prepareCall("{call Proc_AlibabaOther (?)}"); 
cs.setString(1, txLogisticId); 
cs.execute(); 
ResultSet rs = cs.getResultSet(); 
while(rs.next()){ 
     ddMap.put("txLogisticId",txLogisticId); 
     ddMap.put("mailNo",getString(rs.getString("mailNo"))); 
     ddMap.put("remark",getString(rs.getString("remark"))); 
     ddMap.put("acceptTime",getString(rs.getString("gmtCommit"))); 
ddMap.put("acceptAddress",getString(rs.getString("senderaddress"))); 
     ddMap.put("status", "true"); 

return ddMap;

 

出处:http://showlike.iteye.com/blog/946206

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值