原生jdbc执行存储过程

Posted PheonixHkbxoic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生jdbc执行存储过程相关的知识,希望对你有一定的参考价值。

 

 

 1 //定时任务,结转 .
 2     //表名    fys_sch_lvyou2 ,存储过程名:fys_sch_lvyou2_carrayover
 3         //无参调用:{call insertLine}
 4         //有参调用:{call fys_sch_lvyou2_carrayover(?,?) 然后传递参数即可
 5     public void startCarrayOver(){
 6         //获取要结转的时间:当前月(2016年09月30日)的上月,2016年08月
 7         Calendar c = Calendar.getInstance();
 8         c.add(Calendar.MONTH, -1);
 9         String syear = c.get(Calendar.YEAR)+"";
10         int month = c.get(Calendar.MONTH)+1;
11         String smonth = month<10?"0"+month:month+"";
12         System.out.println("From:"+syear+"-"+smonth);
13         //执行存储过程
14         
15         TomcatDataSource tds = SpringBeanUtils.getBean("dataSourceDefault");
16         Connection conn = null;
17         CallableStatement  cs = null;
18         try {
19             conn = tds.getConnection();
20             cs = conn.prepareCall("{call carryover(?,?)}");
21             cs.setString(1, syear);
22             cs.setString(2, smonth);
23             cs.execute();
24             System.out.println("执行存储过程正常!结转成功!");
25         } catch (SQLException e) {
26             e.printStackTrace();
27         } finally {
28             try {
29                 if (cs!=null) {
30                     cs.close();
31                 }
32                 if (conn!=null) {
33                     conn.close();
34                 }
35             } catch (SQLException e) {
36                 e.printStackTrace();
37             }
38             System.out.println("资源关闭成功!");
39         }
40     }

 

存储过程详见:oracle函数和存储过程示例

以上是关于原生jdbc执行存储过程的主要内容,如果未能解决你的问题,请参考以下文章

尝试执行存储过程时收到“com.microsoft.sqlserver.jdbc.SQLServerException:索引1超出范围。”

使用JDBC CallableStatements执行存储过程

通过jdbc执行的存储过程

无法从 .sql 文件创建存储过程 - JDBC

JAVA使用JDBC技术操作SqlServer数据库执行存储过程

通过JDBC API调用存储过程的范例