原生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函数和存储过程示例

posted @ 2016-09-07 18:27  PheonixHkbxoic  阅读(296)  评论(0编辑  收藏  举报