mirror of
https://github.com/CarmJos/EasySQL.git
synced 2026-06-05 00:25:32 +08:00
chore(sql): 提供当前事务实现思路
This commit is contained in:
@@ -2,6 +2,7 @@ package cc.carm.lib.easysql.api;
|
||||
|
||||
import cc.carm.lib.easysql.api.action.PreparedSQLUpdateAction;
|
||||
import cc.carm.lib.easysql.api.action.PreparedSQLUpdateBatchAction;
|
||||
import cc.carm.lib.easysql.api.transaction.SQLTransaction;
|
||||
import cc.carm.lib.easysql.api.builder.*;
|
||||
import cc.carm.lib.easysql.api.function.SQLBiFunction;
|
||||
import cc.carm.lib.easysql.api.function.SQLFunction;
|
||||
@@ -101,6 +102,8 @@ public interface NewSQLManager {
|
||||
*/
|
||||
@NotNull QueryBuilder createQuery();
|
||||
|
||||
@NotNull SQLTransaction createTransaction();
|
||||
|
||||
/**
|
||||
* 创建一条插入操作。
|
||||
*
|
||||
|
||||
@@ -10,7 +10,7 @@ public interface PreparedSQLUpdateAction<T extends Number> extends SQLUpdateActi
|
||||
* @param params 参数内容
|
||||
* @return {@link PreparedSQLUpdateAction}
|
||||
*/
|
||||
PreparedSQLUpdateAction<T> params(Object... params);
|
||||
PreparedSQLUpdateAction<T> values(Object... params);
|
||||
|
||||
/**
|
||||
* 设定SQL语句中所有 ? 对应的参数
|
||||
@@ -19,6 +19,6 @@ public interface PreparedSQLUpdateAction<T extends Number> extends SQLUpdateActi
|
||||
* @return {@link PreparedSQLUpdateAction}
|
||||
* @since 0.4.0
|
||||
*/
|
||||
PreparedSQLUpdateAction<T> params(@Nullable Iterable<Object> params);
|
||||
PreparedSQLUpdateAction<T> values(@Nullable Iterable<Object> params);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
package cc.carm.lib.easysql.api.action;
|
||||
|
||||
import cc.carm.lib.easysql.api.SQLManager;
|
||||
|
||||
public class SQLTransaction implements SQLManager {
|
||||
|
||||
public SQLTransaction savepoint() {
|
||||
return this;
|
||||
}
|
||||
|
||||
public SQLTransaction releaseSavepoint() {
|
||||
return this;
|
||||
}
|
||||
|
||||
public SQLTransaction rollbackToSavepoint() {
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
package cc.carm.lib.easysql.api.condition;
|
||||
|
||||
public class SQLCondition {
|
||||
}
|
||||
@@ -56,12 +56,12 @@ public interface SQLDebugHandler {
|
||||
@Override
|
||||
public void beforeExecute(@NotNull SQLAction<?> action, @NotNull List<@Nullable Object[]> params) {
|
||||
logger.info("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
||||
logger.info("┣# ActionUUID: {}", action.getActionUUID());
|
||||
logger.info("┣# ActionType: {}", action.getClass().getSimpleName());
|
||||
logger.info("┣# 操作编号: {}", action.getActionUUID());
|
||||
logger.info("┣# 操作类型: {}", action.getClass().getSimpleName());
|
||||
if (action.getSQLContents().size() == 1) {
|
||||
logger.info("┣# SQLContent: {}", action.getSQLContents().get(0));
|
||||
logger.info("┣# SQL语句: {}", action.getSQLContents().get(0));
|
||||
} else {
|
||||
logger.info("┣# SQLContents: ");
|
||||
logger.info("┣# SQL语句: ");
|
||||
int i = 0;
|
||||
for (String sqlContent : action.getSQLContents()) {
|
||||
logger.info("┃ - [{}] {}", ++i, sqlContent);
|
||||
@@ -70,25 +70,25 @@ public interface SQLDebugHandler {
|
||||
if (params.size() == 1) {
|
||||
Object[] param = params.get(0);
|
||||
if (param != null) {
|
||||
logger.info("┣# SQLParam: {}", parseParams(param));
|
||||
logger.info("┣# SQL参数: {}", parseParams(param));
|
||||
}
|
||||
} else if (params.size() > 1) {
|
||||
logger.info("┣# SQLParams: ");
|
||||
logger.info("┣# SQL参数: ");
|
||||
int i = 0;
|
||||
for (Object[] param : params) {
|
||||
logger.info("┃ - [{}] {}", ++i, parseParams(param));
|
||||
}
|
||||
}
|
||||
logger.info("┣# CreateTime: {}", action.getCreateTime(TimeUnit.MILLISECONDS));
|
||||
logger.info("┣# 创建时间: {}", action.getCreateTime(TimeUnit.MILLISECONDS));
|
||||
logger.info("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterQuery(@NotNull SQLQuery query, long executeNanoTime, long closeNanoTime) {
|
||||
logger.info("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
||||
logger.info("┣# ActionUUID: {}", query.getAction().getActionUUID());
|
||||
logger.info("┣# SQLContent: {}", query.getSQLContent());
|
||||
logger.info("┣# CloseTime: {} (cost {} ms)",
|
||||
logger.info("┣# 操作编号: {}", query.getAction().getActionUUID());
|
||||
logger.info("┣# SQL语句: {}", query.getSQLContent());
|
||||
logger.info("┣# 关闭时间: {} (cost {} ms)",
|
||||
TimeUnit.NANOSECONDS.toMillis(closeNanoTime),
|
||||
((double) (closeNanoTime - executeNanoTime) / 1000000)
|
||||
);
|
||||
|
||||
@@ -38,6 +38,7 @@ public interface SQLExceptionHandler extends BiConsumer<SQLException, SQLAction<
|
||||
*
|
||||
* @return 无输出的处理器。
|
||||
*/
|
||||
@Deprecated
|
||||
static SQLExceptionHandler silent() {
|
||||
return (exception, sqlAction) -> {
|
||||
};
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package cc.carm.lib.easysql.api.model;
|
||||
|
||||
public class SQLCondition {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package cc.carm.lib.easysql.api.model;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class TableColumn {
|
||||
|
||||
@NotNull String name;
|
||||
@NotNull String type;
|
||||
|
||||
boolean notNull;
|
||||
|
||||
boolean primaryKey;
|
||||
boolean uniqueKey;
|
||||
|
||||
boolean autoIncrement;
|
||||
|
||||
@Nullable String defaultValue;
|
||||
@Nullable String onUpdate;
|
||||
|
||||
@Nullable String comment;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package cc.carm.lib.easysql.api.transaction;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface SQLSavepoint {
|
||||
|
||||
int getID();
|
||||
|
||||
@NotNull String getName();
|
||||
|
||||
void release();
|
||||
|
||||
boolean isReleased();
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package cc.carm.lib.easysql.api.transaction;
|
||||
|
||||
import cc.carm.lib.easysql.api.NewSQLManager;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public interface SQLTransaction extends NewSQLManager, AutoCloseable {
|
||||
|
||||
void commit();
|
||||
|
||||
SQLSavepoint savepoint(String name);
|
||||
|
||||
default void rollback() {
|
||||
rollback(null);
|
||||
}
|
||||
|
||||
void rollback(@Nullable SQLSavepoint savepoint);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user