几种应用程序调用Oracle存储过程的方法
来源:互联网 发布:unity3d 虚拟拆装 编辑:程序博客网 时间:2024/06/05 19:28
一、Java中调用带Cursor的存储过程:
存储过程定义:
PROCEDURE GET_CURSOR_RESULT2(CR OUT CURSOR_RESULT) IS BEGIN OPEN CR FOR select t1.id, t1.account_id, t2.account, t1.key, t1.total, t1.status from table t1;END GET_CURSOR_RESULT2;
调用GET_CURSOR_RESULT2存储过程:
jdbcTemplate.execute(new CallableStatementCreator() {public CallableStatement createCallableStatement(Connection con) throws SQLException {CallableStatement cs = con.prepareCall("{call TRAIL_GETCURSOR.GET_CURSOR_RESULT2(?)}");cs.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);return cs;}}, new CallableStatementCallback<List<Account>>() {public List<Account> doInCallableStatement(CallableStatement cs) {List<Account> accounts = null;ResultSet rs = null;cs.execute();rs = (ResultSet) cs.getObject(1);while(rs.next()) {long id = rs.getLong("id");String accountName = rs.getString("account");long accountID = rs.getLong("account_id");long key = rs.getLong("key");long total = rs.getLong("total");accounts.set...}return accounts;});
jdbcTemplate.execute()有两个参数:CallableStatement和CallableStatementCallback
二、Java中保证调用存储过程的事务
transTemplate.execute(new TransactionCallback() {public Object doInTransaction(TransactionStatus status) {try{success=jdbcTemplate.execute(...);if(!success) {status.setRollbackOnly();}} catch(e) {status.setRollbackOnly();});
在jdbcTemplate外面包上一个transTemplate,通过判断jdbcTemplate执行结果决定是否回退 status.setRollbackOnly()
阅读全文
0 0
- 几种应用程序调用Oracle存储过程的方法
- 几种存储过程的调用方法
- 调用存储过程的几种方法
- ASP里调用存储过程的几种方法
- 在asp中调用存储过程的几种方法
- 在asp中调用存储过程的几种方法
- VB中调用存储过程的几种方法
- 在ASP中调用存储过程的几种方法
- postgreSQL调用存储过程使用refcursor的几种方法
- jdbc调用存储过程几种方法
- hibernate3 调用oracle存储过程的方法
- java调用oracle存储过程的方法
- C#调用Oracle存储过程的方法
- C#调用Oracle存储过程的方法
- C#调用Oracle存储过程的方法
- C#调用Oracle存储过程的方法
- C#调用Oracle存储过程的方法
- SpringJDBC调用oracle存储过程的方法
- 图像转换:RGB24转换为YUV420P
- 深入分析Java方法反射的实现原理
- 位号图中的各电子元件的字母标识
- python3 socket client
- MyBatis知识盘点【壹】_MyBatis和Hibernate
- 几种应用程序调用Oracle存储过程的方法
- 一些比较好的第三方开源
- 定义一个图形类及其子类(三角形类和矩形类),分别计算其面积和周长
- c++ double类型存储
- DAS、SAN和NAS三种存储方式
- 奇怪的SVN报错: Cannot accept non-LF line endings in 'svn:log' property
- 分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?
- TensorFlow高效读取数据的方法
- react-native run-adnroid报错