src/org/nutz/trans/Trans.java
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