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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案

首先給大家出個題目,看看有想法沒有,
求二者的關(guān)系
男A與女B結(jié)婚生了男C
男X與女Y結(jié)婚生了女Z
男C與女Z結(jié)婚...
這就是人間的結(jié)婚生子一代傳一代的關(guān)系
(要考慮一人多次結(jié)婚的情況)

專業(yè)領(lǐng)域包括網(wǎng)站制作、成都網(wǎng)站制作、商城網(wǎng)站制作、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

目的:
設(shè)置Table,欄位自定,
寫一SQL函數(shù)求出若干年前后的任意兩人之間的關(guān)系,假定身份證號碼不重復(fù),當(dāng)輸入兩身份證后就能得出他們的關(guān)系

下面是正文

Jdbc存儲過程是保存起來的可以接受和返回用戶提供的參數(shù)的 Transact-SQL 語句的集合。 可以創(chuàng)建一個過程供永久使用,或在一個會話中臨時使用(局部臨時過程),或在所有會話中臨時使用(全局臨時過程)。 也可以創(chuàng)建在 Microsoft? SQL Server? 啟動時自動運行的存儲過程。 用戶定義函數(shù),它是返回值的已保存的 Transact-SQL 例程。用戶定義函數(shù)不能用于執(zhí)行一組修改全局數(shù)據(jù)庫狀態(tài)的操作。 與系統(tǒng)函數(shù)一樣,用戶定義函數(shù)可以從查詢中喚醒調(diào)用。也可以像存儲過程一樣,通過 EXECUTE 語句執(zhí)行。 總之: 自定義函數(shù):有且只有一個返回值,就像普通的函數(shù)一樣,可以直接在表達式中嵌入調(diào)用并可以隨處調(diào)用。 存儲過程:可以沒有返回值,也可以有任意個輸出參數(shù),必須單獨調(diào)用

存儲過程很好吧,尤其是涉及到多表聯(lián)合更新的問題,就效率易用兩個方面來說就都NB的了。既然這么好的東西,你說說在實際的WEB application里面不用豈不是可惜了,話說到咱們的WEB APP中,要是NB的企業(yè)一般是不會用什么 structs hibernate spring jsf等等框架,但是不能說這些東西不優(yōu)秀不好用,相反一些公司的一般項目用這些東西的優(yōu)點自不必多說。但是現(xiàn)在流行的ssh也不是很好的支持存儲過程,見網(wǎng)上也說hibernate 3.X支持存儲過程,笨人沒有用過,不敢妄加評論,方正2.X不行,有高人說spring支持,查了查看看,里面說到底也是用jdbc,而且還是先要從文件系統(tǒng)里面讀取配置數(shù)據(jù)源的XML文件,解析出來相應(yīng)的數(shù)據(jù)連接,我測試了一下,單次訪問,速度都明顯的需要等待,試想如果訪問量大的話,速度效率自然不敢恭維。既然本身就是用jdbc,為何不直接生成一個專門處理存儲過程的類,里面用jdbc去處理呢。而且就這個方法也有人用,感覺不是很多,笨人測試了一下,速度明顯比那個提取XML文件的方法高,于是在沒有找到更好辦法時間,我決定暫時用這個笨方法:

下面我給出幾個例子,以后好復(fù)習(xí)學(xué)習(xí):

 
 
 
  1. create table bankMoney(  
  2. Id varchar(5) primary key not null,  
  3. userID varchar(20),  
  4. sex varchar(2),  
  5. userMoney int 
  6. )  

這個table 是隨便搞的,意義混亂,不要當(dāng)真,說明問題就行

第一種情況:沒有輸入返回記錄集

 
 
 
  1. create proc selectNoParam  
  2. as  
  3. select * from bankMoney  
  4. java code:  
  5. Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  
  6.       Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bbs", "sa", "sa");  
  7.  
  8. CallableStatement cs = con.prepareCall("{call selectNoParam()}");  
  9.       ResultSet rs = cs.executeQuery();  
  10.       while(rs.next()){  
  11.         System.out.println(rs.getString("Id")+" " + rs.getString("userid")+" " + rs.getString("sex")+" " + rs.getString("userMoney"));  
  12. }  

第二種情況:

有輸入?yún)?shù),沒有輸出參數(shù)的例子。這里的delbankMoney(?),一個問號代表一個參數(shù),包括輸入?yún)?shù)和輸出參數(shù),

      //從左到右index從1開始依次增大。一般來說在聲明定義存儲過程時間,后面一般放輸出參數(shù)

--刪除相應(yīng)員工

 
 
 
  1. create proc delbankMoney(@paramId varchar(5))  
  2. as  
  3. delete from bankMoney where Id = @paramIdjava code:  
  4. CallableStatement cs = con.prepareCall("{call delbankMoney(?)}");  
  5.       cs.setString(1, "001");  
  6.       cs.execute(); 

第三中情況:一個輸入,一個輸出,后面的問號代表輸出,可以有多個輸出,具體怎么設(shè)置要根據(jù)你在數(shù)據(jù)庫中的聲明順序

 
 
 
  1. Proc code:  
  2. create proc testOutPut(@paramId int,@paramSalary int output)  
  3. as  
  4. select @paramSalary = userMoney from bankMoney where Id = @paramId 
  5. java code:  
  6. CallableStatement cs = con.prepareCall("{call testOutPut(?,?)}");  
  7.       cs.setString(1, "001");  
  8.       cs.registerOutParameter(2, java.sql.Types.TINYINT);  
  9.       cs.executeUpdate();  
  10.       System.out.println("001號員工工資為:"+cs.getObject(2));  
  11.       cs.close();  
  12.       con.close();  

Jdbc存儲過程調(diào)用基本上就是這樣了。

【編輯推薦】

  1. j2ee web service開發(fā)(三)SAAJ帶附件的soap消息
  2. j2ee web service開發(fā)(二)動態(tài)代理與動態(tài)調(diào)用
  3. J2ee Jdbc 存儲過程調(diào)用
  4. j2ee web service開發(fā)(五)把ejb發(fā)布為web服務(wù)
  5. j2ee web service開發(fā)(四)soap報頭與處理

網(wǎng)頁名稱:J2ee Jdbc存儲過程調(diào)用
本文地址:http://www.5511xx.com/article/djihijp.html