NutzCN Logo
问答 运行两条sql语句,中间数据库可以断开一下吗?
发布于 2758天前 作者 zozoh44 1768 次浏览 复制 上一个帖子 下一个帖子
标签:

我操作数据库,有两条sql语句,都有触发器,现在运行是两条sql语句执行完了才触发,怎么能中间断一下,运行触发器再接着运行。

9 回复

分开执行(●°u°●)​ 」

代码是这样的,在三个不同的方法里sql语句,它会执行完,在执行触发器。

@At("/billconfirm/?")
	@Ok("json")
	public Object billConfirm(int billid, @Param("billstate")int billstate, HttpServletRequest req){		
		try {
			xsthService.sbillConfirm(billid, billstate);
			xsthService.pbillConfirm(billid, billstate);
			xsthService.ksbillConfirm(billid, billstate);
			return Message.success("system.success", req);		
		} catch (Exception e) {
			e.printStackTrace();
			return Message.error("system.error", req);
		}
	}

配了aop事务?

是的每个方法都配了aop事物

所以事务提交的时候才触动了触发器?

是每个sql方法加了事务,然后3个加了事务的sql语句执行完才触动。
这个是sql事务方法

       /**
	 * 销售订单审核后,审核销售开单
	 * @throws Exception 
	 */
	@Aop(TransAop.READ_COMMITTED)
	public void ksbillConfirm(int billid, int billstate) throws Exception{	
		List<S_sale> sss = dao().query(S_sale.class, Cnd.where("userdef12", "=", billid));
		for(S_sale ss : sss){
			ss.setBillstate(billstate);
			dao().updateIgnoreNull(ss);
		}
	}
	
	/**
	 * 销售订单审核
	 * @throws Exception 
	 */
	@Aop(TransAop.READ_COMMITTED)
	public void sbillConfirm(int billid, int billstate) throws Exception{
		S_sale s = dao().fetch(S_sale.class,Cnd.where("billid", "=", billid));
		s.setBillstate(billstate);
		dao().updateIgnoreNull(s);
	}
	

是每个sql方法加了事务,然后3个加了事务的sql语句执行完才触动。
这个是sql事务方法

       /**
	 * 销售订单审核后,审核销售开单
	 * @throws Exception 
	 */
	@Aop(TransAop.READ_COMMITTED)
	public void ksbillConfirm(int billid, int billstate) throws Exception{	
		List<S_sale> sss = dao().query(S_sale.class, Cnd.where("userdef12", "=", billid));
		for(S_sale ss : sss){
			ss.setBillstate(billstate);
			dao().updateIgnoreNull(ss);
		}
	}
	
	/**
	 * 销售订单审核
	 * @throws Exception 
	 */
	@Aop(TransAop.READ_COMMITTED)
	public void sbillConfirm(int billid, int billstate) throws Exception{
		S_sale s = dao().fetch(S_sale.class,Cnd.where("billid", "=", billid));
		s.setBillstate(billstate);
		dao().updateIgnoreNull(s);
	}
	

我是说入口方法是不是配了声明式事务,js配置那种事务

js里面没有配 ,dao.js 是这样的

var ioc = {
		conf : {
			type : "org.nutz.ioc.impl.PropertiesProxy",
			fields : {
				paths : ["config/"]
			}
		},
	    dataSource : {
	        type : "com.alibaba.druid.pool.DruidDataSource",
	        events : {
	        	create : "init",
	            depose : "close"
	        },
	        fields : {
	            url : {java:"$conf.get('db.url')"},
	            username : {java:"$conf.get('db.username')"},
	            password : {java:"$conf.get('db.password')"},
	            testWhileIdle : true,
	            filters : "mergeStat",
	            connectionProperties : "druid.stat.slowSqlMillis=1000"
	        }
	    },
		dao : {
			type : "org.nutz.dao.impl.NutDao",
			args : [{refer:"dataSource"}]
		}
		
		
		
};
添加回复
请先登陆
回到顶部