日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(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)建存儲過程,代碼如下:

 
 
 
  1. alter proc proc_productName   //proc_productName存儲過程名
  2. @productName varchar(50)      //輸入?yún)?shù)
  3. as
  4. select productID,productName from Products where productName like @productName;
  5. exec proc_productName @productName = '%f%'  //測試存儲過程寫的是否正確

1)創(chuàng)建連接池

2)假如我們用DBCP來調(diào)用連接池,代碼如下:

 
 
 
  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 存儲過程名 輸入?yún)?shù)
  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存儲過程輸入?yún)?shù)賦值
  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調(diào)用存儲過程

重點語句截取,其它參照上面例題

1)調(diào)用無參數(shù)的存儲過程

 
 
 
  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)有輸入?yún)?shù)

 
 
 
  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(?)}";  //輸入?yún)?shù)
  8. sql = "{call proc_FindProductNameOutPut(?,?)}";       //輸出參數(shù)
  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調(diào)用存儲過程就介紹到這里。


名稱欄目:J2EE調(diào)用存儲過程
分享鏈接:http://www.5511xx.com/article/cdjhphc.html