DB2数据库调用存储过程的方法及实例介绍

上次我们介绍了DB2数据库创建触发器的实现过程,本文我们来介绍一下DB2数据库存储过程的调用,接下来就让我们来一起了解一下这部分内容吧。

创新互联建站是一家专注于网站制作、网站建设与策划设计,湟源网站建设哪家好?创新互联建站做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:湟源等地区。湟源做网站价格咨询:028-86922220

一、对存储过程的调用分三部分

1.连接(与数据库建立连接)

 
 
 
  1. Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
  2. Connection con=DriverManager.getConnection(url,user,password);

2.注册输出参数

 
 
 
  1. cs.registerOutParameter (3, Types.INTEGER);

3.调用存储过程:

 
 
 
  1. CallableStatement cs=con.prepareCall("{call store_name(参数,参数,参数)}");

二、调用举例:

 
 
 
  1. import java.net.URL;
  2. import java.sql.*;
  3. class test2
  4. {
  5. public static void main(String args[])
  6. {
  7. String url = "jdbc:db2://wellhope/sample";
  8. String user="db2admin";
  9. String password="db2admin";
  10. try
  11. {
  12. Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
  13. //与数据库建立连接
  14. Connection con=DriverManager.getConnection(url,user,password);
  15. checkForWarning(con.getWarnings());
  16. DatabaseMetaData dma=con.getMetaData();
  17. String str="This is a string";
  18. //int hashcode=str.hashCode();
  19. //System.out.println("Hashcode   "+hashcode);
  20. //创建Statement对象,用于执行SQL语句
  21. Statement stmt=con.createStatement();
  22. //创建CallableStatement对象,用于执行存储过程
  23. CallableStatement cs=con.prepareCall("{call PRO_YHDL1(?,?,?)}");
  24. //注册输出参数
  25. cs.registerOutParameter (3, Types.INTEGER);
  26. int result = 0;
  27. cs.setString(1,"123");
  28. cs.setString(2,"123");
  29. cs.execute();
  30. result = cs.getInt (3);
  31. dispResultSet(result);
  32. cs.close();
  33. con.close();
  34. }
  35. catch(SQLException ex)
  36. {
  37. System.out.println(" * * * SQLException caught * * * ");
  38. while(ex!=null)
  39. {
  40. System.out.println("SQLState: "+ex.getSQLState());
  41. System.out.println("Message: "+ex.getMessage());
  42. System.out.println("Vendor: "+ex.getErrorCode());
  43. exex=ex.getNextException();
  44. System.out.println("");
  45. }
  46. }   
  47. catch(java.lang.Exception ex)
  48. {    
  49. ex.printStackTrace();
  50. }
  51. }

三、存储过程举例:

Pro_yhdl1是一个存储过程,它的功能是从数据库表YHDL中取出PWD:

 
 
 
  1. import java.sql.*;                  
  2. public class Pro_yhdl1
  3. {
  4. public static void pro_yhdl1 ( String m_id,
  5. String m_pwd,
  6. int[] result ) throws SQLException, Exception
  7. {
  8. // Get connection to the database
  9. Connection con = DriverManager.getConnection("jdbc:default:connection");
  10. PreparedStatement stmt = null;
  11. ResultSet rs = null;
  12. String sql;
  13. String m_password="";
  14. sql = "SELECT"
  15. + "       DB2ADMIN.YHDL.PWD"
  16. + " FROM"
  17. + "    DB2ADMIN.YHDL"
  18. + " WHERE"
  19. + "    ("
  20. + "       ( "
  21. + "          DB2ADMIN.YHDL.ID = '"+m_id.trim()+"'"
  22. + "       )"
  23. + "    )";
  24. stmt = con.prepareStatement( sql );
  25. rs = stmt.executeQuery();
  26. // Access query results
  27. while (rs.next())
  28. {
  29. m_password=rs.getString(1);
  30. m_passwordm_password=m_password.trim();
  31. if (rs.wasNull())
  32. System.out.print("NULL");
  33. else
  34. System.out.print(m_password);
  35. }
  36. if(m_password.equals(m_pwd.trim()))
  37. {
  38. result[0] =1;
  39. }
  40. else
  41. {
  42. result[0] =0;
  43. }
  44. // close open resources
  45. if (rs != null) rs.close();
  46. if (stmt != null) stmt.close();
  47. if (con != null) con.close();
  48. // set return parameter
  49. //result[0] = result[0];
  50. }
  51. }

关于DB2数据库调用存储过程的知识就介绍到这里了,希望本次的介绍能够对您有所帮助。

当前题目:DB2数据库调用存储过程的方法及实例介绍
文章源于:http://www.shufengxianlan.com/qtweb/news1/542951.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联