Nutz5---nutz事物练习

第一:页面
<input type="button" value="删除Person,address" οnclick="deletePersonAndAddress();">

//更新Person,address对象 练习nutz事务
function deletePersonAndAddress(){
$.ajax({
type : 'POST',
url : 'deletePersonAndAddress.nut',
success : function(){
alert("chenchaoyang");
}
});
}

第二Action
/**
* 删除人员和Address,练习事物
*/
@At("/deletePersonAndAddress")
@Ok("json")
@AdaptBy(type = PairAdaptor.class)
public String deletePersonAndAddress() {
final Person person = dao.fetch(Person.class, 26);
final Address address = dao.fetch(Address.class,25);
person.setName("奥巴马");
address.setName("美国");

//exec第一个参数是事物级别
Trans.exec(Connection.TRANSACTION_REPEATABLE_READ,new Atom() {
@Override
public void run() {
//语句1 能成功执行。
dao.update(person);

//人为制造异常
System.out.println(new String[3]);
String[] temp = new String[3];
System.out.println(temp[5]);

//因为前面有异常发生下面语句2 没有执行,
//并且语句一的更新也自动执行回滚
dao.update(address);
}
});
return "success";
}


第三:其他
nutz可以支持无限层的事物嵌套
例如:
Trans.exec(Connection.TRANSACTION_READ_COMMITTED, new Atom(){
public void run(){
dao.update(xxx);
dao.update(bbb);

// 在下层模板,虽然你指定了新的事务级别,但是这里的事务级别还是
// 'TRANSACTION_READ_COMMITTED'。在一个事务中,级别一旦设定就不可更改
Trans.exec(Connection.TRANSACTION_SERIALIZABLE, new Atom(){
public void run(){
dao.update(CCC);
dao.update(EEE);
}
});
}
});


另外还有一种方式支持事物就是:
dao.execute(Sql ...)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值