您好,欢迎访问一九零五行业门户网

java事务的类型有哪些及怎么使用

1.jdbc事务
用 connection 对象控制,jdbc 的 connection 接口提供了两种事务模式:自动提交、手工提交。
 public void setautocommit(boolean) public boolean getautocommit() public void commit() public void rollback()
jdbc 为使用 java 进行数据库的事务操作提供了最基本的支持。可以将多个 sql 语句放到同一个事务中,保证其 acid 特性。
涉及到多数据库的操作或者分布式场景,jdbc事务就无能为力了。
2.jta(java transaction api)事务
jta是一种高层的,与实现无关的,与协议无关的api,应用程序和应用服务器可以使用jta来访问事务。jta允许应用程序执行分布式事务处理--在两个或多个网络计算机资源上访问并且更新数据,这些数据可以分布在多个数据库上。jdbc驱动程序的jta支持极大地增强了数据访问能力。
public void jtatransfer() {         javax.transaction.usertransaction tx = null;        java.sql.connection conn = null;         try{              tx = (javax.transaction.usertransaction) context.lookup(java:comp/usertransaction);  //取得jta事务,本例中是由jboss容器管理             javax.sql.datasource ds = (javax.sql.datasource) context.lookup(java:/xaoracleds);  //取得数据库连接池,必须有支持xa的数据库、驱动程序               tx.begin();            conn = ds.getconnection();             // 将自动提交设置为 false,             //若设置为 true 则数据库将会把每一次数据更新认定为一个事务并自动提交             conn.setautocommit(false);             stmt = conn.createstatement();              // 将 a 账户中的金额减少 500              stmt.execute(\             update t_account set amount = amount - 500 where account_id = 'a');             // 将 b 账户中的金额增加 500              stmt.execute(\             update t_account set amount = amount + 500 where account_id = 'b');             // 提交事务             tx.commit();             // 事务提交:转账的两步操作同时成功         } catch(sqlexception sqle){                         try{                  // 发生异常,回滚在本事务中的操做              tx.rollback();                 // 事务回滚:转账的两步操作完全撤销                 stmt.close();                  conn.close();              }catch(exception ignore){              }              sqle.printstacktrace();          }      }
3.容器事务
容器事务主要是j2ee应用服务器提供的,容器事务大多是基于jta完成,这是一个基于jndi的,相当复杂的api实现。
以上就是java事务的类型有哪些及怎么使用的详细内容。
其它类似信息

推荐信息