国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

sql server2005 jdbc解決自動自動增長列統(tǒng)一處理問題紀(jì)實

瀏覽:10日期:2024-07-05 18:47:45

作者fbysssmsn:[email protected]; blog:blog.csdn.net/fbysss聲明:本文由fbysss原創(chuàng),轉(zhuǎn)載請注明出處 關(guān)鍵字:自動增長列,jdbc,sqlserver2005

背景:系統(tǒng)要支持多種數(shù)據(jù)庫,統(tǒng)一insert的時候獲取自動增長列的處理方式問題1:insert+select方案sqlserver2000可以使用insertSql; + SELECT @@IDENTITY AS 'Identity'的方式來獲得,但是mysql則只能使用executeUpdate(insertSql); executeQuery('SELECT last_insert_id() ')這樣的方式,否則會拋出異常:java.sql.SQLException: Can not issue data manipulation statements with executeQuery()而兩句話分開處理,總讓人感覺不放心,如果并發(fā)操作比較多,存在潛在的危險問題2:getGeneratedKeys方案mysql的驅(qū)動支持jdbc3.0,實現(xiàn)了getGeneratedKeys()但sqlserver2000 jdbc驅(qū)動不支持getGeneratedKeys()解決思路:google了一下,據(jù)說2005是支持的,所以下下來看看下載地址:url:http://download.microsoft.com/download/2/8/9/289dd6a3-eeeb-46dc-9045-d0c6b59bfbc1/sqljdbc_1.1.1501.101_chs.exe使用小結(jié):1.2005jdbc驅(qū)動是支持jdbc 3.0 的。也就是說,的確支持getGeneratedKeys()方法。2.2005jdbc驅(qū)動url和包組織變動較大。舉例對比:(請仔細看好了,一不小心看不出差別!)================2000================url='jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb;SelectMethod=cursor'driverClassName='com.microsoft.sqlserver.jdbc.SQLServerDriver'================2005================url='jdbc:sqlserver://localhost:1433;DatabaseName=mydb;SelectMethod=cursor'driverClassName='com.microsoft.jdbc.sqlserver.SQLServerDriver'如果沒注意這點,必將出現(xiàn)異常:Cannot load JDBC driver class'com.microsoft.jdbc.sqlserver.SQLServerDriver'做好第二步,出現(xiàn)3.包的位置:環(huán)境變量CLASSPATH不是必須的。但sqljdbc.jar必須放置在tomcat/common/lib中(如果是租用空間,可能得跟對方商量了,看是否支持2005的驅(qū)動)。否則會發(fā)生異常:Cannot load JDBC driver class'com.microsoft.sqlserver.jdbc.SQLServerDriver'

測試示例方法:

public; String executeUpdate(String sql) throws;SQLException ...{ Connection conn = getConnection(); PreparedStatement pstmt = null; try ...{ /**//*注意:jdbc3.0提供了Statement.RETURN_GENERATED_KEYS'用來指明需要從Statement中獲得自動增長列值, 如果不設(shè)置該參數(shù),在執(zhí)行g(shù)etGeneratedKeys()時會拋出異常:'只有運行該語句,生成的鍵才會可用。'*/ pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); pstmt.executeUpdate(); ResultSet rs =; pstmt.getGeneratedKeys();//為了insert準(zhǔn)備 if (rs.next())...{ return rs.getString(1); } return '-1'; } catch (SQLException ex) ...{ throw new SQLException( '執(zhí)行SQL語句失敗。' + ex.toString() + '; sql:'+sql);

} finally ...{ freeConnection(conn,pstmt); } }

標(biāo)簽: JDBC
主站蜘蛛池模板: 午夜影院欧美 | 欧美一级aⅴ毛片 | 视频一区视频二区在线观看 | 国产久视频 | 国产一区二区三区日韩 | 日韩丝袜美腿 | 成人国产在线视频 | 欧美一级淫片免费播放口 | 久久免费毛片 | 高清免费国产在线观看 | 成人男男黄网色视频免费 | 久久久久国产一级毛片高清板 | 国产黄三级三·级三级 | 久草最新网址 | 中国黄色网址大全 | 国产精品久久一区二区三区 | 91视频18| 久久免费毛片 | 成人国产精品999视频 | 男女视频在线观看免费 | 精品无码一区在线观看 | 亚洲高清国产一线久久 | 人成免费网站 | 亚洲日本综合 | 欧美日韩大片 | 黄网站在线播放视频免费观看 | 国产女主播91 | 日韩免费在线 | 亚洲欧美日韩精品香蕉 | 国产亚洲亚洲精品777 | 日韩 欧美 国产 师生 制服 | 欧美一级欧美三级在线观看 | 亚洲人成毛片线播放 | 国模肉肉人体大尺度啪啪 | 日本黄大片影院一区二区 | 亚洲精品一区 | 国产在线91精品 | 午夜爽爽性刺激一区二区视频 | 在线观看国产一区二三区 | 男人的天堂欧美 | 999成人国产精品 |