diff --git a/src/main/java/org/redkale/source/DataTransaction.java b/src/main/java/org/redkale/source/DataTransaction.java new file mode 100644 index 000000000..1f2cac83b --- /dev/null +++ b/src/main/java/org/redkale/source/DataTransaction.java @@ -0,0 +1,44 @@ +/* + * + */ +package org.redkale.source; + +import java.util.concurrent.CompletableFuture; + +/** + * DataSource的事务类
+ * 示例:
+ *
+ * DataSource source = ...;
+ * DataTransaction tran = source.createTransaction();
+ * try {
+ *    tran.source().insert(record1); //必须使用tran.source(),不能使用source
+ *    tran.source().update(record2); //必须使用tran.source(),不能使用source
+ *    tran.commit(); //事务提交
+ * } catch(Exception e){
+ *    tran.rollback(); //回滚
+ * }
+ * 
+ * + * 详情见: https://redkale.org + * + * @author zhangjx + * @since 2.8.0 + */ +public interface DataTransaction { + + //事务版的DataSource + DataSource source(); + + //同步模式提交 + public void commit(); + + //同步模式回滚 + public void rollback(); + + //异步模式提交 + public CompletableFuture commitAsync(); + + //异步模式回滚 + public CompletableFuture rollbackAsync(); +}