spring 中StoredProcedure的用法--转载
?StoredProcedure是一个抽象类,必须写一个子类来继承它,这个类是用来简化JDBCTemplate执行存储过程操作的。 首先我们写一个实现类: <span style="color: #0000ff;">import<span style="color: #000000;"> java.sql.Types;
<span style="color: #0000ff;">import<span style="color: #000000;"> java.util.HashMap; <span style="color: #0000ff;">import<span style="color: #000000;"> java.util.Map; <span style="color: #0000ff;">import<span style="color: #000000;"> org.springframework.jdbc.core.RowMapper; <span style="color: #008000;">/**<span style="color: #008000;">
} 写一个测试: = "classpath:spring/applicationContext-base.xml"= (JdbcTemplate) context.getBean("jdbcTemplate"
StoredProcedureTemplate template </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> StoredProcedureTemplate();
template.setJdbcTemplate(jdbc);
template.setSql(</span>"testproc"<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;">注意有返回结果集的时候,第一个参数必须设置为返回结果集参数,不然会报错。</span>
template.setReturnParam("rows",<span style="color: #0000ff;">new</span><span style="color: #000000;"> FirstReportRowMapper());
template.setIntegerParam(</span>"@parama"<span style="color: #000000;">);
template.setValue(</span>"@parama",9<span style="color: #000000;">);
Map map </span>=<span style="color: #000000;"> template.execute();
Object o </span>= map.get("rows"<span style="color: #000000;">);
List</span><FirstReportVO> list = (List<FirstReportVO><span style="color: #000000;">)o;
</span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (FirstReportVO vo : list) {
System.out.println(vo.getSortID()</span>+","+<span style="color: #000000;">vo.getSortName());
}
}</span></pre>
唯一要注意的地方就是测试里备注的地方,我测试了好久才发现,郁闷的一塌糊涂,老是莫名其妙的错,原来将参数互换一下位置就OK了,比如你把 template.setIntegerParam("@parama");写在前面然后再写template.setReturnParam("rows",new FirstReportRowMapper());的话,就会报空指针错误。 这个“rows”可以随便取名字,不过下面map.get("rows")要和你取的名字一致,因为StoredProcedureTemplate会将结果集以这个名字保存在map中返回。 还有要注意的就是设置sqlparamter的顺序要和存储过程中参数的顺序要一致,不然也会报错. 原文:http://blog.csdn.net/xiao_jun_0820/article/details/7268219 ?http://forum.spring.io/forum/spring-projects/data/13984-multiple-calls-to-storedprocedure-using-same-connection (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |