J2EE中怎么调用存储过程

J2EE中怎么调用存储过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

我们提供的服务有:成都网站建设、成都网站制作、微信公众号开发、网站优化、网站认证、南靖ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的南靖网站制作公司

1.存储过程分类

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

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

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

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

1)创建连接池

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

   public static void getname(String parname) {  BasicDataSource bds=new BasicDataSource();  bds.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  bds.setUrl("jdbc:sqlserver://localhost:1433;databaseName=NorthWind");  bds.setUsername("sa");  bds.setPassword("");   String sql="{call proc_productName(?) }";  //call 存储过程名 输入参数   ResultSet rs=null;  Connection conn=null;   CallableStatement cs=null;  //相对于pstmt    try {   conn=bds.getConnection();      cs=conn.prepareCall(sql);   cs.setString(1,"%f%");     //给Sql存储过程输入参数赋值   rs=cs.executeQuery();   while(rs.next()){    System.out.println(rs.getString("productName"));   }  } catch (SQLException e) {   e.printStackTrace();  }finally{   try {    rs.close();    cs.close();    conn.close();   } catch (SQLException e) {    // TODO Auto-generated catch block    e.printStackTrace();   }     }   }

3.Java调用存储过程

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

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

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

2)有输入参数

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

3)即有输入又有输出

  BasicDataSource basicDataSource = new BasicDataSource();  basicDataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  basicDataSource.setUrl("jdbc:sqlserver://localhost:1433;DatabaseName=Northwind");  basicDataSource.setUsername("sa");  basicDataSource.setPassword("qaz123");  String sql = "{call proc_ViewProduct}";  sql = "{call proc_FindByProductNameFromProduct(?)}";  //输入参数  sql = "{call proc_FindProductNameOutPut(?,?)}";       //输出参数  //sql = "{call fyproduct(?,?)}";  try {   Connection conn = basicDataSource.getConnection();   CallableStatement cstmt = conn.prepareCall(sql);   //cstmt.setInt(1,2);   cstmt.setString(1,"'%f%'");     cstmt.registerOutParameter(2,java.sql.Types.INTEGER);     ResultSet rs = cstmt.executeQuery();   while(rs.next()){    System.out.println(rs.getString("productName"));   }   System.out.println(cstmt.getInt(2));   rs.close();   cstmt.close();   conn.close();  } catch (SQLException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }  }

关于J2EE中怎么调用存储过程问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


网页标题:J2EE中怎么调用存储过程
本文路径:http://scyanting.com/article/gocojs.html