public static void exec(int level, Atom... atoms) {
    """
	执行一组原子操作，并指定事务级别。
	<p>
	这里需要注意的是，Nutz 支持事务模板的无限层级嵌套。 这里，如果每一层嵌套，指定的事务级别有所不同，不同的数据库，可能引发不可预知的错误。
	<p>
	所以，嵌套的事务模板的事务，将以最顶层的事务为级别为标准。就是说，如果最顶层的事务级别为
	'TRANSACTION_READ_COMMITTED'，那么下面所包含的所有事务，无论你指定什么样的事务级别，都是
	'TRANSACTION_READ_COMMITTED'， 这一点，由抽象类 Transaction 来保证。其 setLevel
	当被设置了一个大于 0 的整数以后，将不再 接受任何其他的值。
	<p>
	你可以通过继承 Transaction 来修改这个默认的行为，当然，这个行为修改一般是没有必要的。
	<p>
	另外，你还可能需要知道，通过 Trans.setup 方法，能让整个虚拟机的 Nutz 事务操作都使用你的 Transaction 实现
	
	@param level
	事务的级别。
	<p>
	你可以设置的事务级别是：
	<ul>
	<li>java.sql.Connection.TRANSACTION_NONE
	<li>java.sql.Connection.TRANSACTION_READ_UNCOMMITTED
	<li>java.sql.Connection.TRANSACTION_READ_COMMITTED
	<li>java.sql.Connection.TRANSACTION_REPEATABLE_READ
	<li>java.sql.Connection.TRANSACTION_SERIALIZABLE
	</ul>
	不同的数据库，对于 JDBC 事务级别的规范，支持的力度不同。请参看相应数据库的文档，已
	确定你设置的数据库事务级别是否被支持。
	@param atoms
	原子操作对象
	@see org.nutz.trans.Transaction
	@see java.sql.Connection
    """
        if (null == atoms)
            return;
        int num = count.get() == null ? 0 : count.get();
        try {
            _begain(level);
            for (Atom atom : atoms)
                atom.run();
            _commit();
        }
        catch (Throwable e) {
            _rollback(num);
            throw Lang.wrapThrow(e);
        }
        finally {
            _depose();
        }
    }
public static void exec(int level, Atom... atoms) {
        if (null == atoms)
            return;
        int num = count.get() == null ? 0 : count.get();
        try {
            _begain(level);
            for (Atom atom : atoms)
                atom.run();
            _commit();
        }
        catch (Throwable e) {
            _rollback(num);
            throw Lang.wrapThrow(e);
        }
        finally {
            _depose();
        }
    }
public static void exec ( int level , Atom ... atoms ) { if ( null == atoms ) return ; int num = count . get ( ) == null ? 0 : count . get ( ) ; try { _begain ( level ) ; for ( Atom atom : atoms ) atom . run ( ) ; _commit ( ) ; } catch ( Throwable e ) { _rollback ( num ) ; throw Lang . wrapThrow ( e ) ; } finally { _depose ( ) ; } }
执行一组原子操作，并指定事务级别。
<p>
这里需要注意的是，Nutz 支持事务模板的无限层级嵌套。 这里，如果每一层嵌套，指定的事务级别有所不同，不同的数据库，可能引发不可预知的错误。
<p>
所以，嵌套的事务模板的事务，将以最顶层的事务为级别为标准。就是说，如果最顶层的事务级别为
'TRANSACTION_READ_COMMITTED'，那么下面所包含的所有事务，无论你指定什么样的事务级别，都是
'TRANSACTION_READ_COMMITTED'， 这一点，由抽象类 Transaction 来保证。其 setLevel
当被设置了一个大于 0 的整数以后，将不再 接受任何其他的值。
<p>
你可以通过继承 Transaction 来修改这个默认的行为，当然，这个行为修改一般是没有必要的。
<p>
另外，你还可能需要知道，通过 Trans.setup 方法，能让整个虚拟机的 Nutz 事务操作都使用你的 Transaction 实现

@param level
事务的级别。
<p>
你可以设置的事务级别是：
<ul>
<li>java.sql.Connection.TRANSACTION_NONE
<li>java.sql.Connection.TRANSACTION_READ_UNCOMMITTED
<li>java.sql.Connection.TRANSACTION_READ_COMMITTED
<li>java.sql.Connection.TRANSACTION_REPEATABLE_READ
<li>java.sql.Connection.TRANSACTION_SERIALIZABLE
</ul>
不同的数据库，对于 JDBC 事务级别的规范，支持的力度不同。请参看相应数据库的文档，已
确定你设置的数据库事务级别是否被支持。
@param atoms
原子操作对象
@see org.nutz.trans.Transaction
@see java.sql.Connection
执行一组原子操作，并指定事务级别。 <p > 这里需要注意的是，Nutz 支持事务模板的无限层级嵌套。 这里，如果每一层嵌套，指定的事务级别有所不同，不同的数据库，可能引发不可预知的错误。 <p > 所以，嵌套的事务模板的事务，将以最顶层的事务为级别为标准。就是说，如果最顶层的事务级别为 TRANSACTION_READ_COMMITTED ，那么下面所包含的所有事务，无论你指定什么样的事务级别，都是 TRANSACTION_READ_COMMITTED ， 这一点，由抽象类 Transaction 来保证。其 setLevel 当被设置了一个大于 0 的整数以后，将不再 接受任何其他的值。 <p > 你可以通过继承 Transaction 来修改这个默认的行为，当然，这个行为修改一般是没有必要的。 <p > 另外，你还可能需要知道，通过 Trans . setup 方法，能让整个虚拟机的 Nutz 事务操作都使用你的 Transaction 实现