Nutz5---nutz事物练习
程序员文章站
2022-07-15 16:19:40
...
第一:页面
<input type="button" value="删除Person,address" onclick="deletePersonAndAddress();">
//更新Person,address对象 练习nutz事务
function deletePersonAndAddress(){
$.ajax({
type : 'POST',
url : 'deletePersonAndAddress.nut',
success : function(){
alert("chenchaoyang");
}
});
}
第二Action
第三:其他
nutz可以支持无限层的事物嵌套
例如:
另外还有一种方式支持事物就是:
dao.execute(Sql ...)
<input type="button" value="删除Person,address" onclick="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 ...)
上一篇: Nutz2----使用nutz自带的过滤器来实现检查是否登陆
下一篇: NodeJS学习笔记