原生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执行存储过程