public abstract class Trans extends 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(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 Connection |
getConnectionAuto(DataSource ds)
如果在事务中,则返回事务的连接,否则直接从数据源取一个新的连接
|
static boolean |
isTransactionNone()
是否在事务中
|
static void |
rollback()
回滚事务,执行它前,你必需保证你已经手工开始了一个事务
|
static void |
setup(Class<? extends Transaction> classOfTransaction)
这个函数允许你扩展默认的 Nutz 事务实现方式
|
public static Transaction get()
public static void setup(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 Exception
你需要手工用 try...catch...finally 来保证你提交和关闭这个事务
Exception
public static void begin(int level) throws Exception
你需要手工用 try...catch...finally 来保证你提交和关闭这个事务
level
- 指定级别Exception
public static Connection getConnectionAuto(DataSource ds) throws SQLException
SQLException
public static void closeConnectionAuto(Connection conn)
conn
- 数据库连接public static void clear(boolean rollbackOrCommit)
rollbackOrCommit
- 检测到未闭合的事务时回滚还是提交,true为回滚,false为提交。Copyright © 2017. All rights reserved.