锘??xml version="1.0" encoding="utf-8" standalone="yes"?>男人的天堂久久精品,亚洲国产精品黑人久久久,一区二区三区中文在线http://www.aygfsteel.com/wuxufeng8080/category/10540.htmlzh-cnFri, 02 Mar 2007 03:30:15 GMTFri, 02 Mar 2007 03:30:15 GMT60JTA鍜孞DBC浜嬪姟 (ZT)http://www.aygfsteel.com/wuxufeng8080/articles/60359.html椋庝漢鍥?/dc:creator>椋庝漢鍥?/author>Thu, 27 Jul 2006 07:19:00 GMThttp://www.aygfsteel.com/wuxufeng8080/articles/60359.html聽(tīng)

聽(tīng)涓鑸儏鍐典笅錛孞2EE搴旂敤鏈嶅姟鍣ㄦ敮鎸丣DBC浜嬪姟銆丣TA浜嬪姟銆佸鍣ㄧ鐞嗕簨鍔°傝繖閲岃璁篔TA鍜孞DBC浜嬪姟鐨勫尯鍒傝繖2涓槸甯哥敤鐨凞AO妯″紡浜嬪姟鐣屽畾鏂瑰紡銆?br />JDBC 浜嬪姟
聽(tīng)JDBC 浜嬪姟鏄敤 Connection 瀵硅薄鎺у埗鐨勩侸DBC Connection 鎺ュ彛( java.sql.Connection )鎻愪緵浜?jiǎn)涓たU嶄簨鍔℃ā寮忥細(xì)鑷姩鎻愪氦鍜屾墜宸ユ彁浜ゃ備緥濡傚涓嬬墖鏂細(xì)
聽(tīng)import java.sql.*;
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) import javax.sql.*;

聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // ...
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DataSource ds = obtainDataSource();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Connection conn = ds.getConnection();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) conn.setAutoCommit(false);
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // ...
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pstmt = conn.prepareStatement("UPDATE MOVIES ...");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pstmt.setString(1, "The Great Escape");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pstmt.executeUpdate();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // ...
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) conn.commit();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // ...

聽(tīng)JDBC 浜嬪姟鐨勪竴涓己鐐規(guī)槸浜嬪姟鐨勮寖鍥村眬闄愪簬涓涓暟鎹簱榪炴帴銆備竴涓?JDBC 浜嬪姟涓嶈兘璺ㄨ秺澶氫釜鏁版嵁搴撱?br />JTA浜嬪姟
聽(tīng)JTA(Java Transaction API) 涓?J2EE 騫沖彴鎻愪緵浜?jiǎn)鍒嗗竷寮忎簨鍔℃湇鍔°?br />聽(tīng)瑕佺敤 JTA 榪涜浜嬪姟鐣屽畾錛屽簲鐢ㄧ▼搴忚璋冪敤 javax.transaction.UserTransaction 鎺ュ彛涓殑鏂規(guī)硶銆備緥濡傦細(xì)
聽(tīng)utx.begin();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // ...
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DataSource ds = obtainXADataSource();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) Connection conn = ds.getConnection();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pstmt = conn.prepareStatement("UPDATE MOVIES ...");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pstmt.setString(1, "Spinal Tap");
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) pstmt.executeUpdate();
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // ...
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) utx.commit();

聽(tīng)璁╂垜浠潵鍏蟲(chóng)敞涓嬮潰鐨勮瘽錛?br />聽(tīng)鈥滅敤 JTA 鐣屽畾浜嬪姟錛岄偅涔堝氨闇瑕佹湁涓涓疄鐜?javax.sql.XADataSource 銆?javax.sql.XAConnection 鍜?javax.sql.XAResource 鎺ュ彛鐨?JDBC 椹卞姩紼嬪簭銆備竴涓疄鐜頒簡(jiǎn)榪欎簺鎺ュ彛鐨勯┍鍔ㄧ▼搴忓皢鍙互鍙備笌 JTA 浜嬪姟銆備竴涓?XADataSource 瀵硅薄灝辨槸涓涓?XAConnection 瀵硅薄鐨勫伐鍘傘?XAConnection s 鏄弬涓?JTA 浜嬪姟鐨?JDBC 榪炴帴銆傗?br />聽(tīng)瑕佷嬌鐢↗TA浜嬪姟錛屽繀欏諱嬌鐢╔ADataSource鏉ヤ駭鐢熸暟鎹簱榪炴帴錛屼駭鐢熺殑榪炴帴涓轟竴涓猉A榪炴帴銆?br />聽(tīng)XA榪炴帴錛坖avax.sql.XAConnection錛夊拰闈瀀A錛坖ava.sql.Connection錛夎繛鎺ョ殑鍖哄埆鍦ㄤ簬錛歑A鍙互鍙備笌JTA鐨勪簨鍔★紝鑰屼笖涓嶆敮鎸佽嚜鍔ㄦ彁浜ゃ?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) Note:
Oracle, Sybase, DB2, SQL Server絳夊ぇ鍨嬫暟鎹簱鎵嶆敮鎸乆A, 鏀寔鍒嗗竷浜嬪姟銆?
My SQL 榪炴湰鍦伴兘鏀寔涓嶅ソ錛屾洿鍒鍒嗗竷浜嬪姟浜?jiǎn)銆?br />JTA鏂瑰紡鐨勫疄鐜拌繃紼?/font>錛?br />聽(tīng)聽(tīng) 鐢╔ADataSource浜х敓鐨刋AConnection瀹冩墿灞曚簡(jiǎn)涓涓猤etXAResource()鏂規(guī)硶,浜嬪姟閫氳繃榪欎釜鏂規(guī)硶鎶婂畠鍔犲叆鍒頒簨鍔″鍣ㄤ腑榪涜綆$悊.瀵逛簬璋冪敤鑰呮潵璇?鏍規(guī)湰鐪嬩笉鍒頒簨鍔℃槸濡傛灉綆$悊鐨?浣犲彧瑕佸0鏄庡紑濮嬩簨鍔?鍛婅瘔瀹瑰櫒鎴戜笅闈㈢殑鎿嶄綔瑕佹眰浜嬪姟鍙備笌浜?鏈鍚庡憡璇変簨鍔¤鍒拌繖鍎垮彲浠ユ彁浜ゆ垨鍥炴粴浜?鍒殑閮芥槸榛戠鎿嶄綔銆?br />聽(tīng)鍦ㄤ嬌鐢↗TA涔嬪墠錛屼綘蹇呴』棣栧厛瀹炵幇涓涓猉id綾葷敤鏉ユ爣璇嗕簨鍔★紙鍦ㄦ櫘閫氭儏鍐典笅榪欏皢鐢變簨鍔$鐞嗙▼搴忔潵澶勭悊錛夈俋id鍖呭惈涓変釜鍏冪礌錛歠ormatID銆乬trid錛堝叏灞浜嬪姟鏍囪瘑絎︼級(jí)鍜宐qual錛堝垎鏀慨楗拌瘝鏍囪瘑絎︼級(jí)銆?br />聽(tīng)涓嬮潰鐨勪緥瀛愯鏄嶺id鐨勫疄鐜幫細(xì)

import javax.transaction.xa.*;
public class MyXid implements Xid
{
銆protected int formatId;
銆protected byte gtrid[];
銆protected byte bqual[];
銆public MyXid()
銆{
銆}
銆public MyXid(int formatId, byte gtrid[], byte bqual[])
銆{
銆銆this.formatId = formatId;
銆銆this.gtrid = gtrid;
銆銆this.bqual = bqual;
銆}

銆public int getFormatId()
銆{
銆銆return formatId;
銆}

銆public byte[] getBranchQualifier()
銆{
銆銆return bqual;
銆}

銆public byte[] getGlobalTransactionId()
銆{
銆銆return gtrid;
銆}

}
聽(tīng)鍏舵錛屼綘闇瑕佸垱寤轟竴涓綘瑕佷嬌鐢ㄧ殑鏁版嵁搴撶殑鏁版嵁婧愶細(xì)

public DataSource getDataSource()
銆throws SQLException
銆{
銆銆SQLServerDataSource xaDS = new
銆銆com.merant.datadirect.jdbcx.sqlserver.SQLServerDataSource();
銆銆xaDS.setDataSourceName("SQLServer");
銆銆xaDS.setServerName("server");
銆銆xaDS.setPortNumber(1433);
銆銆xaDS.setSelectMethod("cursor");
銆銆return xaDS;
}

銆銆渚??榪欎釜渚嬪瓙鏄敤鈥滀袱姝ユ彁浜ゅ崗璁濇潵鎻愪氦涓涓簨鍔″垎鏀細(xì)

XADataSource xaDS;
XAConnection xaCon;
XAResource xaRes;
Xid xid;
Connection con;
Statement stmt;
int ret;
xaDS = getDataSource();
xaCon = xaDS.getXAConnection("jdbc_user", "jdbc_password");
xaRes = xaCon.getXAResource();
con = xaCon.getConnection();
stmt = con.createStatement();
xid = new MyXid(100, new byte[]{0x01}, new byte[]{0x02});
try {
銆銆xaRes.start(xid, XAResource.TMNOFLAGS);
銆銆stmt.executeUpdate("insert into test_table values (100)");
銆銆xaRes.end(xid, XAResource.TMSUCCESS);
銆銆ret = xaRes.prepare(xid);
銆銆if (ret == XAResource.XA_OK) {
銆銆銆銆xaRes.commit(xid, false);
銆銆銆}
}
catch (XAException e) {
銆e.printStackTrace();
}
finally {
銆stmt.close();
銆con.close();
銆xaCon.close();
}
聽(tīng)褰撶劧錛屽疄闄呰繃紼嬩腑錛屾垜浠笉闇瑕佸啓榪欎簺浠g爜錛岃繖浜涗唬鐮佹槸JTA鏈緇堢殑瀹炵幇浠g爜銆?br />鍏充簬鈥滀袱姝ユ彁浜ゅ崗璁濓紝鍙互鍙傜湅涓嬮潰鐨勬枃绔狅細(xì)
http://www.jspcn.net/htmlnews/11049371131251752.html

聽(tīng)http://www.vermicelli.pasta.cs.uit.no/ipv6/students/andrer/doc/html/node18.html


閫夋嫨鏈濂界殑鏂瑰紡
鐢?JDBC API 榪涗簨鍔$晫瀹氭潵鏋勫緩 DAO 綾葷殑銆傝繖浜?DAO 綾誨彲浠ユ葷粨濡備笅錛?/p>

浜嬪姟鐣屽畾浠g爜宓屽叆鍦?DAO 綾諱腑銆?
DAO 綾諱嬌鐢?JDBC API 榪涜浜嬪姟鐣屽畾銆?
璋冪敤鑰呬笉鑳界晫瀹氫簨鍔°?
浜嬪姟鑼冨洿灞闄愪簬鍗曚釜 JDBC 榪炴帴銆?
JDBC 浜嬪姟騫朵笉鎬繪槸閫傚悎澶嶆潅鐨勪紒涓氬簲鐢ㄧ▼搴忋傚鏋滄?zhèn)ㄧ殑浜嬪姟瑕佽法瓒婂涓?DAO 鎴栬呭涓暟鎹簱錛岄偅涔堜笅鍒楀疄鐜扮瓥鐣ヤ篃璁告洿鍚堥傦細(xì)

浜嬪姟鐢?JTA 鐣屽畾銆?
浜嬪姟鐣屽畾浠g爜浠?DAO 涓垎紱誨嚭鏉ャ?
璋冪敤鑰呰礋璐g晫瀹氫簨鍔°?
DAO 鍔犲叆涓涓叏灞浜嬪姟銆?
JDBC 鏂瑰紡鐢變簬鍏剁畝鍗曟ц屽叿鏈夊惛寮曞姏錛孞TA銆鏂瑰紡鎻愪緵浜?jiǎn)鏇村ぇ鐨勭亯|椿鎬с傛?zhèn)ㄦ墍閫夋嫨鐨勫疄鐜板皢鍙栧喅浜庡簲鐢ㄧ▼搴忕殑鐗瑰畾闇姹傘?br />XADataSource渚嬪瓙錛?br /><?xml version="1.0" encoding="UTF-8"?>

<!-- ===================================================================== -->
<!--聽(tīng)聽(tīng)聽(tīng) -->
<!--聽(tīng) JBoss Server Configuration聽(tīng)聽(tīng)聽(tīng) -->
<!-- Thanks to Horia Muntean <horia@bvb.ro>聽(tīng)聽(tīng) -->
<!-- ===================================================================== -->

<!-- $Id: db2-xa-ds.xml,v 1.1.2.1 2003/05/30 18:25:57 d_jencks Exp $ -->


<datasources>
聽(tīng)聽(tīng) <!--
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) XADatasource for DB2 V8.1 (app driver)
聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) copy $db2_install_dir/java/db2java.zip into $jboss_install_dir/server/default/lib
聽(tīng)聽(tīng) -->

聽(tīng)聽(tīng) <xa-datasource>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) <jndi-name>DB2XADS</jndi-name>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) <xa-datasource-class>COM.ibm.db2.jdbc.DB2XADataSource</xa-datasource-class>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) <xa-datasource-property name="DatabaseName">yout_database_name</xa-datasource-property>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) <xa-datasource-property name="User">your_user</xa-datasource-property>
聽(tīng)聽(tīng)聽(tīng)聽(tīng) <xa-datasource-property name="Password">your_password</xa-datasource-property>
聽(tīng)聽(tīng) </xa-datasource>
</datasources>

寮曠敤錛?br />聽(tīng)http://www.jspcn.net/htmlnews/11049371131251752.html
http://www-128.ibm.com/developerworks/cn/java/j-dao/
http://www.vermicelli.pasta.cs.uit.no/ipv6/students/andrer/doc/html/node18.html



]]>
主站蜘蛛池模板: 宁晋县| 永年县| 紫阳县| 高唐县| 潜江市| 监利县| 肇州县| 纳雍县| 麻城市| 招远市| 盐源县| 旌德县| 成武县| 齐河县| 墨脱县| 策勒县| 申扎县| 天水市| 定兴县| 黄龙县| 合阳县| 正安县| 宁陕县| 西昌市| 浦县| 闵行区| 沈阳市| 化隆| 彝良县| 博兴县| 香港| 哈巴河县| 克东县| 平罗县| 汝城县| 云龙县| 定兴县| 安庆市| 玉溪市| 深泽县| 桓台县|