jotm oracle10g oracle 9i,施用jotm实现跨数据库事务控制

编程入门 行业动态 更新时间:2024-10-28 16:24:01

jotm oracle10g oracle 9i,施用jotm实现跨数据库<a href=https://www.elefans.com/category/jswz/34/1770772.html style=事务控制"/>

jotm oracle10g oracle 9i,施用jotm实现跨数据库事务控制

Java代码

 

packagecom.tanlan.jta.dao;

importjava.sql.Connection;

importjavax.naming.NamingException;

importjavax.sql.XAConnection;

importjavax.transaction.UserTransaction;

importorg.enhydra.jdbc.standard.StandardXADataSource;

importorg.objectweb.jotm.Jotm;

importorg.objectweb.transaction.jta.TMService;

publicclassJotmHelper {

privateTMService jotm;

privateUserTransaction userTransaction;

/**

* 启动事务管理服务

*/

publicvoidstartTMService() {

try{

jotm =newJotm(true,false);

userTransaction = jotm.getUserTransaction();

}catch(NamingException e1) {

e1.printStackTrace();

}

}

/**

* 取得数据库连接

*

* @param db

* @return

* @throws Exception

*/

publicConnection getConnection(String db)throwsException {

StandardXADataSource xads =newStandardXADataSource();

XAConnection xaconn =null;

if("mysql".equals(db)) {

xads.setDriverName("com.mysql.jdbc.Driver");

xads.setUrl("jdbc:mysql://localhost/test");

xads.setTransactionManager(jotm.getTransactionManager());

xaconn = xads.getXAConnection("root","root");

}elseif("oracle".equals(db)) {

xads.setDriverName("oracle.jdbc.driver.OracleDriver");

xads.setUrl("jdbc:oracle:thin:@localhost:1521:XE");

xads.setTransactionManager(jotm.getTransactionManager());

xaconn = xads.getXAConnection("tanlan","tanlan");

}else{

}

returnxaconn.getConnection();

}

publicvoidbegin() {

try{

userTransaction.begin();

}catch(Exception e) {

e.printStackTrace();

}

}

publicvoidcommit() {

try{

userTransactionmit();

}catch(Exception e) {

e.printStackTrace();

}

}

publicvoidrollback() {

try{

userTransaction.rollback();

}catch(Exception e) {

e.printStackTrace();

}

}

/**

* 停止事务管理服务

*/

publicvoidstopTMService() {

jotm.stop();

jotm =null;

}

}

package com.tanlan.jta.dao;

import java.sql.Connection;

import javax.naming.NamingException;

import javax.sql.XAConnection;

import javax.transaction.UserTransaction;

import org.enhydra.jdbc.standard.StandardXADataSource;

import org.objectweb.jotm.Jotm;

import org.objectweb.transaction.jta.TMService;

public class JotmHelper {

private TMService jotm;

private UserTransaction userTransaction;

/**

* 启动事务管理服务

*/

public void startTMService() {

try {

jotm = new Jotm(true, false);

userTransaction = jotm.getUserTransaction();

} catch (NamingException e1) {

e1.printStackTrace();

}

}

/**

* 取得数据库连接

*

* @param db

* @return

* @throws Exception

*/

public Connection getConnection(String db) throws Exception {

StandardXADataSource xads = new StandardXADataSource();

XAConnection xaconn = null;

if ("mysql".equals(db)) {

xads.setDriverName("com.mysql.jdbc.Driver");

xads.setUrl("jdbc:mysql://localhost/test");

xads.setTransactionManager(jotm.getTransactionManager());

xaconn = xads.getXAConnection("root", "root");

} else if ("oracle".equals(db)) {

xads.setDriverName("oracle.jdbc.driver.OracleDriver");

xads.setUrl("jdbc:oracle:thin:@localhost:1521:XE");

xads.setTransactionManager(jotm.getTransactionManager());

xaconn = xads.getXAConnection("tanlan", "tanlan");

} else {

}

return xaconn.getConnection();

}

public void begin() {

try {

userTransaction.begin();

} catch (Exception e) {

e.printStackTrace();

}

}

public void commit() {

try {

userTransactionmit();

} catch (Exception e) {

e.printStackTrace();

}

}

public void rollback() {

try {

userTransaction.rollback();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 停止事务管理服务

*/

public void stopTMService() {

jotm.stop();

jotm = null;

}

}

更多推荐

jotm oracle10g oracle 9i,施用jotm实现跨数据库事务控制

本文发布于:2024-02-13 03:40:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690513.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:事务   数据库   jotm   oracle10g   oracle

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!