亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

sql server2005 jdbc解決自動(dòng)自動(dòng)增長(zhǎng)列統(tǒng)一處理問(wèn)題紀(jì)實(shí)

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

作者fbysssmsn:jameslastchina@hotmail.com; blog:blog.csdn.net/fbysss聲明:本文由fbysss原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處 關(guān)鍵字:自動(dòng)增長(zhǎng)列,jdbc,sqlserver2005

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

測(cè)試示例方法:

public; String executeUpdate(String sql) throws;SQLException ...{ Connection conn = getConnection(); PreparedStatement pstmt = null; try ...{ /**//*注意:jdbc3.0提供了Statement.RETURN_GENERATED_KEYS'用來(lái)指明需要從Statement中獲得自動(dòng)增長(zhǎng)列值, 如果不設(shè)置該參數(shù),在執(zhí)行g(shù)etGeneratedKeys()時(shí)會(huì)拋出異常:'只有運(yùn)行該語(yǔ)句,生成的鍵才會(huì)可用。'*/ 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語(yǔ)句失敗。' + ex.toString() + '; sql:'+sql);

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

標(biāo)簽: JDBC
主站蜘蛛池模板: 亚洲伦理在线 | 欧美精品videossex性护士 | 国产三级91 | 国产经典一区 | 亚洲欧洲一区二区三区 | 96色视频 | 国产一区二区三区 | 美女黄页在线观看 | 国产美女免费网站 | 国产美女无遮挡免费网站 | 成年人免费网址 | 香蕉视频好色先生 | 正在播放国产精品放孕妇 | 欧美日韩永久久一区二区三区 | 久久er热这里只有精品23 | 久久免费观看国产精品 | 国产大片黄在线看免费 | 老人与老人一级毛片 | 麻豆国产一区二区在线观看 | 中文字幕日韩一区 | 99久免费精品视频在线观看2 | 欧美一级欧美三级在线观看 | 99精品国产成人一区二区在线 | 国产成人啪精品午夜在线观看 | 亚洲狠狠婷婷综合久久久久 | 久久亚洲这里只有精品18 | aa一级毛片 | 日韩在线视频免费不卡一区 | 国产成人综合91精品 | 久久99精品久久久久久久野外 | 国产成人精品日本亚洲专区6 | 中文日韩字幕 | 黄色片在线免费观看视频 | 久久黄色一级片 | 激情网站网址 | 日韩免费大片 | 99re热久久这里只有精品6 | 黄色片视频国产 | 国产免费爽爽视频免费可以看 | 老妇女性较大毛片 | 国产系列欧美系列日韩系列在线 |