色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

sql server2005 jdbc解決自動自動增長列統一處理問題紀實

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

作者fbysssmsn:[email protected]; blog:blog.csdn.net/fbysss聲明:本文由fbysss原創,轉載請注明出處 關鍵字:自動增長列,jdbc,sqlserver2005

背景:系統要支持多種數據庫,統一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()而兩句話分開處理,總讓人感覺不放心,如果并發操作比較多,存在潛在的危險問題2:getGeneratedKeys方案mysql的驅動支持jdbc3.0,實現了getGeneratedKeys()但sqlserver2000 jdbc驅動不支持getGeneratedKeys()解決思路:google了一下,據說2005是支持的,所以下下來看看下載地址:url:http://download.microsoft.com/download/2/8/9/289dd6a3-eeeb-46dc-9045-d0c6b59bfbc1/sqljdbc_1.1.1501.101_chs.exe使用小結:1.2005jdbc驅動是支持jdbc 3.0 的。也就是說,的確支持getGeneratedKeys()方法。2.2005jdbc驅動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'如果沒注意這點,必將出現異常:Cannot load JDBC driver class'com.microsoft.jdbc.sqlserver.SQLServerDriver'做好第二步,出現3.包的位置:環境變量CLASSPATH不是必須的。但sqljdbc.jar必須放置在tomcat/common/lib中(如果是租用空間,可能得跟對方商量了,看是否支持2005的驅動)。否則會發生異常: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中獲得自動增長列值, 如果不設置該參數,在執行getGeneratedKeys()時會拋出異常:'只有運行該語句,生成的鍵才會可用。'*/ pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); pstmt.executeUpdate(); ResultSet rs =; pstmt.getGeneratedKeys();//為了insert準備 if (rs.next())...{ return rs.getString(1); } return '-1'; } catch (SQLException ex) ...{ throw new SQLException( '執行SQL語句失敗。' + ex.toString() + '; sql:'+sql);

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

標簽: JDBC
主站蜘蛛池模板: 欧美特黄aaaaaa | 国产一级毛片午夜福 | 99久久国产综合精品国 | www.久草视频 | 国产精品久久毛片蜜月 | 看片亚洲| 91精品国产高清久久久久 | 国产一级片在线 | 亚洲国产精品一区二区久 | 黄a 大片a v 永久免费 | 久久久久国产精品免费网站 | 最新国产精品视频免费看 | 在线观看视频一区二区三区 | 欧美精品免费看 | 国产激情久久久久影 | 日本理论片免费高清影视在线观看 | 亚洲综合亚洲综合网成人 | 国产亚洲精品久久久久久午夜 | 老妇综合久久香蕉蜜桃 | a天堂中文在线官网 | 丝袜美腿在线不卡视频播放 | 亚洲黄色三级网站 | 国产成人精品福利网站在线 | 中文国产成人精品久久无广告 | 在线不卡亚洲 | 免费黄色成人 | 爽爽爽爽爽爽爽成人免费观看 | 在线免费亚洲 | 日本色网址 | 成人免费大片a毛片 | 日本一二线不卡在线观看 | 国产成人精品高清免费 | 欧美一级精品 | 亚洲视色 | 欧美三级中文字幕 | 久久久免费视频播放 | 免费一级毛片在线播放不收费 | 久久免费高清视频 | 美女福利视频午夜在线 | 欧美成人免费在线观看 | 色综合久久88色综合天天提莫 |