事务操作

1、java只要把事务操作设置为不自动提交,通过手动提交就能实现事务的处理,代码如下:

package com.oracle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
 * java事务控制
 * @author Administrator
 *
 */
public class TestTrans {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Connection ct = null;
		try{
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			ct = DriverManager.getConnection("jdbc:oracle:thin:@172.17.40.227:1521:orcl","scott","tiger");
			Statement sm = ct.createStatement();
			//加入事务处理
			ct.setAutoCommit(false);
			sm.executeUpdate("update emp set sal=sal-100 where ename='SCOTT'");
			//int i = 7/0;
			sm.executeUpdate("update emp set sal=sal+100 where ename='SMITH'");;
			//提交事务
			ct.commit();
			
		}catch(Exception e){
			//如果发生异常就回滚
			try{
				ct.rollback();
			}catch(Exception ex){
				ex.printStackTrace();
			}
			e.printStackTrace();
		}finally{
		    sm.close();
		    ct.close();
		}

	}

}

2、ibatis主要通过SqlMapClient类中的startTransaction()、commitTransaction()、endTransaction()、rollbackTransaction()这四个方法来实现事务的开始、提交、结束和回退。例子代码如下:

private Reader reader = new Resources.getResourceAsReader( 
             "com/ibatis/example/sqlMapconfig.xml"); 
private SqlMapClient sqlMap = XmlSqlMapBuilder.buildSqlMap(reader); 
public updateItemDescription (String itemId, String newDescription) throws SQLException { 
    try { 
        sqlMap.startTransaction (); 
        Item item = (Item) sqlMap.queryForObject ("getItem", itemId); 
        item.setDescription (newDescription); 
        sqlMap.update ("updateItem", item); 
        sqlMap.commitTransaction ();
    } finally { 
        sqlMap.endTransaction ();
    } 
} 

说明:
public class A {
      method ma1
      method ma2
      method ma3
}

public class B{
      A a = new A();
      method mb1(){
            ma1
      }
}

public class C{
       method  mc1
}


现在得到了C的对象,想要使用A对象的ma3方法

做法是 在 b类中增加 一个方法 包含ma3   mb3

这样 在c类里面就能定义一个 包含mb3的方法即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值