java 调用存储过程

最近做了个项目,是调用别人的存储过程。因为文档弄错了,害的我够惨。现在把调用java存储过程贴出来,希望大侠们多多指导。
Java代码 复制代码 收藏代码
  1. package test;
  2. import java.sql.CallableStatement;
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.Timestamp;
  6. import java.sql.Types;
  7. public class hz {
  8. public static void main(String[] args )
  9. {
  10. CallableStatement proc = null;
  11. Connection conn = null;
  12. try
  13. {
  14. Class.forName("oracle.jdbc.driver.OracleDriver");
  15. conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","hz","oracle");
  16. proc = conn.prepareCall("{call orcl.hz(?,?,?,?,?,?,?,?,?,?,?,?)}");
  17. proc.setString(1,"ss");
  18. proc.setInt(2,100);
  19. //此时间格式必须传入时分秒
  20. proc.setTimestamp(3,Timestamp.valueOf("2012-12-20 00:00:00"));
  21. proc.setTimestamp(4,Timestamp.valueOf("2012-12-20 00:00:00"));
  22. proc.setTimestamp(5,Timestamp.valueOf("2012-12-20 00:00:00"));
  23. proc.setInt(6,1);
  24. proc.setString(7,"aa");
  25. proc.setString(8,"1");
  26. proc.setString(9,"dd");
  27. proc.setString(10,"bb");
  28. //调用存储过程出参
  29. proc.registerOutParameter(11,Types.Integer);
  30. proc.registerOutParameter(12,Types.VARCHAR);
  31. proc.execute();
  32. //接受存储过程出参
  33. int i = proc.getString(11);
  34. String s = proc.getString(12);
  35. System.out.println("i的值为:"+i);
  36. System.out.println("s的值为:"+s);
  37. }catch (Exception ex)
  38. {
  39. System.out.println(ex.getMessage());
  40. }
  41. }   
posted on 2013-02-21 20:14  蜜雪薇琪  阅读(200)  评论(0编辑  收藏  举报