public abstract class Trans
extends java.lang.Object
限定符和类型 | 字段和说明 |
---|---|
static boolean |
DEBUG
事务debug开关
|
限定符和类型 | 方法和说明 |
---|---|
static void |
begin()
开始一个事务,级别为 TRANSACTION_READ_COMMITTED
你需要手工用 try...catch...finally 来保证你提交和关闭这个事务
|
static void |
begin(int level)
开始一个指定事务
你需要手工用 try...catch...finally 来保证你提交和关闭这个事务
|
static void |
clear(boolean rollbackOrCommit)
强制清理事务上下文
|
static void |
close()
关闭事务,执行它前,你必需保证你已经手工开始了一个事务
|
static void |
closeConnectionAuto(java.sql.Connection conn)
自动判断是否关闭当前连接
|
static void |
commit()
提交事务,执行它前,你必需保证你已经手工开始了一个事务
|
static void |
exec(Atom... atoms)
执行一组原子操作,默认的事务级别为: TRANSACTION_READ_COMMITTED。
|
static void |
exec(int level,
Atom... atoms)
执行一组原子操作,并指定事务级别。
|
static <T> T |
exec(Molecule<T> molecule)
执行一个分子,并给出返回值
|
static Transaction |
get() |
static java.sql.Connection |
getConnectionAuto(javax.sql.DataSource ds)
如果在事务中,则返回事务的连接,否则直接从数据源取一个新的连接
|
static boolean |
isTransactionNone()
是否在事务中
|
static void |
rollback()
回滚事务,执行它前,你必需保证你已经手工开始了一个事务
|
static void |
setup(java.lang.Class<? extends Transaction> classOfTransaction)
这个函数允许你扩展默认的 Nutz 事务实现方式
|
public static Transaction get()
public static void setup(java.lang.Class<? extends Transaction> classOfTransaction)
classOfTransaction
- 你的事务实现public static boolean isTransactionNone()
public static void exec(Atom... atoms)
atoms
- 原子操作对象public static void exec(int level, Atom... atoms)
这里需要注意的是,Nutz 支持事务模板的无限层级嵌套。 这里,如果每一层嵌套,指定的事务级别有所不同,不同的数据库,可能引发不可预知的错误。
所以,嵌套的事务模板的事务,将以最顶层的事务为级别为标准。就是说,如果最顶层的事务级别为 'TRANSACTION_READ_COMMITTED',那么下面所包含的所有事务,无论你指定什么样的事务级别,都是 'TRANSACTION_READ_COMMITTED', 这一点,由抽象类 Transaction 来保证。其 setLevel 当被设置了一个大于 0 的整数以后,将不再 接受任何其他的值。
你可以通过继承 Transaction 来修改这个默认的行为,当然,这个行为修改一般是没有必要的。
另外,你还可能需要知道,通过 Trans.setup 方法,能让整个虚拟机的 Nutz 事务操作都使用你的 Transaction 实现
level
- 事务的级别。
你可以设置的事务级别是:
atoms
- 原子操作对象Transaction
,
Connection
public static <T> T exec(Molecule<T> molecule)
T
- molecule
- 分子public static void begin() throws java.lang.Exception
你需要手工用 try...catch...finally 来保证你提交和关闭这个事务
java.lang.Exception
public static void begin(int level) throws java.lang.Exception
你需要手工用 try...catch...finally 来保证你提交和关闭这个事务
level
- 指定级别java.lang.Exception
public static void commit() throws java.lang.Exception
java.lang.Exception
public static void rollback() throws java.lang.Exception
java.lang.Exception
public static void close() throws java.lang.Exception
java.lang.Exception
public static java.sql.Connection getConnectionAuto(javax.sql.DataSource ds) throws java.sql.SQLException
java.sql.SQLException
public static void closeConnectionAuto(java.sql.Connection conn)
conn
- 数据库连接public static void clear(boolean rollbackOrCommit)
rollbackOrCommit
- 检测到未闭合的事务时回滚还是提交,true为回滚,false为提交。