新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
J2EE調(diào)用存儲過程
1.存儲過程分類

創(chuàng)新互聯(lián)于2013年開始,先為江西等服務(wù)建站,江西等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為江西企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
分為"系統(tǒng)級存儲過程"和"用戶級存儲過程"
用戶級存儲過程分為有參數(shù)的和無參數(shù)的
而有參數(shù)的又分為:
1)有輸入?yún)?shù)無輸出參數(shù)
2)有輸出參數(shù)無輸入?yún)?shù)
3)有輸入又有輸出參數(shù)
2.JAVA調(diào)用存儲(J2EE調(diào)用存儲)過程例子
1)在SqlServer里創(chuàng)建存儲過程,代碼如下:
- alter proc proc_productName //proc_productName存儲過程名
- @productName varchar(50) //輸入?yún)?shù)
- as
- select productID,productName from Products where productName like @productName;
- exec proc_productName @productName = '%f%' //測試存儲過程寫的是否正確
1)創(chuàng)建連接池
2)假如我們用DBCP來調(diào)用連接池,代碼如下:
- 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 存儲過程名 輸入?yún)?shù)
- ResultSet rs=null;
- Connection conn=null;
- CallableStatement cs=null; //相對于pstmt
- try {
- conn=bds.getConnection();
- cs=conn.prepareCall(sql);
- cs.setString(1,"%f%"); //給Sql存儲過程輸入?yún)?shù)賦值
- 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調(diào)用存儲過程
重點語句截取,其它參照上面例題
1)調(diào)用無參數(shù)的存儲過程
- sql="{call proc_viewProduct}";
- CallableStatement cstmt=conn.prepareCall(sql);
- ResultSet rs=cstmt.executeQuery();
- while(rs.next)
- System.out.println(rs.getString("productName"));
2)有輸入?yún)?shù)
- 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(?)}"; //輸入?yún)?shù)
- sql = "{call proc_FindProductNameOutPut(?,?)}"; //輸出參數(shù)
- //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調(diào)用存儲過程就介紹到這里。
當前文章:J2EE調(diào)用存儲過程
標題鏈接:http://fisionsoft.com.cn/article/cdjhphc.html


咨詢
建站咨詢
