J2EE调用存储过程

1.存储过程分类

创新互联于2013年开始,先为江西等服务建站,江西等地企业,进行企业商务咨询服务。为江西企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

分为"系统级存储过程"和"用户级存储过程"
用户级存储过程分为有参数的和无参数的
而有参数的又分为:
1)有输入参数无输出参数
2)有输出参数无输入参数
3)有输入又有输出参数

2.JAVA调用存储(J2EE调用存储)过程例子

1)在SqlServer里创建存储过程,代码如下:

 
 
 
  1. alter proc proc_productName   //proc_productName存储过程名
  2. @productName varchar(50)      //输入参数
  3. as
  4. select productID,productName from Products where productName like @productName;
  5. exec proc_productName @productName = '%f%'  //测试存储过程写的是否正确

1)创建连接池

2)假如我们用DBCP来调用连接池,代码如下:

 
 
 
  1.    public static void getname(String parname) {
  2. BasicDataSource bds=new BasicDataSource();
  3. bds.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  4. bds.setUrl("jdbc:sqlserver://localhost:1433;databaseName=NorthWind");
  5. bds.setUsername("sa");
  6. bds.setPassword("");
  7. String sql="{call proc_productName(?) }";  //call 存储过程名 输入参数
  8. ResultSet rs=null;
  9. Connection conn=null;
  10. CallableStatement cs=null;  //相对于pstmt  
  11. try {
  12.  conn=bds.getConnection();   
  13.  cs=conn.prepareCall(sql);
  14.  cs.setString(1,"%f%");     //给Sql存储过程输入参数赋值
  15.  rs=cs.executeQuery();
  16.  while(rs.next()){
  17.   System.out.println(rs.getString("productName"));
  18.  }
  19. catch (SQLException e) {
  20.  e.printStackTrace();
  21. }finally{
  22.  try {
  23.   rs.close();
  24.   cs.close();
  25.   conn.close();
  26.  } catch (SQLException e) {
  27.   // TODO Auto-generated catch block
  28.   e.printStackTrace();
  29.  }
  30.  
  31. }

3.Java调用存储过程

重点语句截取,其它参照上面例题

1)调用无参数的存储过程

 
 
 
  1. sql="{call proc_viewProduct}";
  2. CallableStatement cstmt=conn.prepareCall(sql);
  3. ResultSet rs=cstmt.executeQuery();
  4. while(rs.next)
  5.  System.out.println(rs.getString("productName"));

2)有输入参数

 
 
 
  1. sql="{call proc_FindByProducts(?)}";
  2. sctmt.setString(1,"%f%");

3)即有输入又有输出

 
 
 
  1.   BasicDataSource basicDataSource = new BasicDataSource();
  2. basicDataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  3. basicDataSource.setUrl("jdbc:sqlserver://localhost:1433;DatabaseName=Northwind");
  4. basicDataSource.setUsername("sa");
  5. basicDataSource.setPassword("qaz123");
  6. String sql = "{call proc_ViewProduct}";
  7. sql = "{call proc_FindByProductNameFromProduct(?)}";  //输入参数
  8. sql = "{call proc_FindProductNameOutPut(?,?)}";       //输出参数
  9. //sql = "{call fyproduct(?,?)}";
  10. try {
  11.  Connection conn = basicDataSource.getConnection();
  12.  CallableStatement cstmt = conn.prepareCall(sql);
  13.  //cstmt.setInt(1,2);
  14.  cstmt.setString(1,"'%f%'");  
  15.  cstmt.registerOutParameter(2,java.sql.Types.INTEGER);  
  16.  ResultSet rs = cstmt.executeQuery();
  17.  while(rs.next()){
  18.   System.out.println(rs.getString("productName"));
  19.  }
  20.  System.out.println(cstmt.getInt(2));
  21.  rs.close();
  22.  cstmt.close();
  23.  conn.close();
  24. catch (SQLException e) {
  25.  // TODO Auto-generated catch block
  26.  e.printStackTrace();
  27. }
  28. }

J2EE调用存储过程就介绍到这里。

当前标题:J2EE调用存储过程
标题网址:http://www.shufengxianlan.com/qtweb/news39/491139.html

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

广告

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