From 479c23f985e5f89be6cc98f28f3a5b53908930bd Mon Sep 17 00:00:00 2001 From: carm Date: Wed, 15 Mar 2023 23:06:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8F=90=E4=BA=A4=E8=BF=9B=E5=BA=A6=20?= =?UTF-8?q?[ci=20skip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +- .../cc/carm/lib/easysql/api/SQLBuilder.java | 4 +- .../cc/carm/lib/easysql/api/SQLManager.java | 78 +++++++-- .../cc/carm/lib/easysql/api/SQLQuery.java | 11 +- .../cc/carm/lib/easysql/api/SQLSource.java | 67 +------- ...{SQLAction.java => SQLAdvancedAction.java} | 152 +++++++---------- .../api/action/SQLAsyncableAction.java | 55 ------ .../lib/easysql/api/action/SQLBaseAction.java | 122 ++++++++++++++ .../asyncable/AsyncableBatchUpdateAction.java | 28 ---- .../AsyncablePreparedBatchUpdateAction.java | 43 ----- .../AsyncablePreparedQueryAction.java | 35 ---- .../AsyncablePreparedUpdateAction.java | 26 --- .../asyncable/AsyncableUpdateAction.java | 27 --- .../api/action/base/BatchUpdateAction.java | 27 --- .../base/PreparedBatchUpdateAction.java | 42 ----- .../api/action/base/PreparedQueryAction.java | 35 ---- .../api/action/base/PreparedUpdateAction.java | 24 --- .../easysql/api/action/base/QueryAction.java | 45 ----- .../easysql/api/action/base/UpdateAction.java | 25 --- .../action/query/PreparedSQLQueryAction.java | 44 +++++ .../SQLQueryAction.java} | 15 +- .../update/PreparedSQLBatchUpdateAction.java | 49 ++++++ .../update/PreparedSQLUpdateAction.java | 32 ++++ .../action/update/SQLBatchUpdateAction.java | 33 ++++ .../api/action/update/SQLUpdateAction.java | 33 ++++ .../api/builder/ConditionalBuilder.java | 27 +-- .../easysql/api/builder/DeleteBuilder.java | 8 +- .../easysql/api/builder/InsertBuilder.java | 8 +- .../lib/easysql/api/builder/QueryBuilder.java | 16 +- .../easysql/api/builder/ReplaceBuilder.java | 13 +- .../api/builder/TableAlterBuilder.java | 58 ++++--- .../api/builder/TableCreateBuilder.java | 54 +++--- .../api/builder/TableQueryBuilder.java | 11 +- .../easysql/api/builder/UpdateBuilder.java | 13 +- .../easysql/api/builder/UpsertBuilder.java | 17 -- .../easysql/api/function/SQLDebugHandler.java | 12 +- .../api/function/SQLExceptionHandler.java | 7 +- .../carm/lib/easysql/api/table/SQLTable.java | 20 +-- .../api/transaction/SQLTransaction.java | 32 ++-- .../api/transaction/TransactionAction.java | 4 +- demo/src/main/java/EasySQLDemo.java | 1 + .../java/cc/carm/lib/easysql/EasySQLTest.java | 1 - .../cc/carm/lib/easysql/TransactionTest.java | 11 +- .../easysql/{manager => }/SQLManagerImpl.java | 157 +++++++----------- .../cc/carm/lib/easysql/SQLSourceImpl.java | 126 ++++++++++++++ .../carm/lib/easysql/SQLTransactionImpl.java | 108 ++++++++++++ .../lib/easysql/action/AbstractSQLAction.java | 2 +- ... => PreparedSQLBatchUpdateActionImpl.java} | 22 +-- ....java => PreparedSQLUpdateActionImpl.java} | 28 ++-- ...mpl.java => SQLBatchUpdateActionImpl.java} | 6 +- .../lib/easysql/action/UpdateActionImpl.java | 2 +- ...l.java => PreparedSQLQueryActionImpl.java} | 14 +- ...ctionImpl.java => SQLQueryActionImpl.java} | 10 +- .../easysql/builder/AbstractSQLBuilder.java | 3 +- .../impl/AbstractConditionalBuilder.java | 2 +- .../builder/impl/DeleteBuilderImpl.java | 6 +- .../builder/impl/InsertBuilderImpl.java | 2 +- .../builder/impl/QueryBuilderImpl.java | 10 +- .../builder/impl/ReplaceBuilderImpl.java | 2 +- .../builder/impl/TableAlterBuilderImpl.java | 2 +- .../builder/impl/TableCreateBuilderImpl.java | 2 +- .../impl/TableMetadataBuilderImpl.java | 2 +- .../builder/impl/TableQueryBuilderImpl.java | 8 +- .../builder/impl/UpdateBuilderImpl.java | 6 +- .../carm/lib/easysql/query/SQLQueryImpl.java | 14 +- .../java/cc/carm/lib/easysql/EasySQL.java | 1 - .../java/cc/carm/lib/easysql/EasySQL.java | 1 - 67 files changed, 994 insertions(+), 913 deletions(-) rename api/src/main/java/cc/carm/lib/easysql/api/action/{SQLAction.java => SQLAdvancedAction.java} (54%) delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/SQLAsyncableAction.java create mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/SQLBaseAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableBatchUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedBatchUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedQueryAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/base/BatchUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedBatchUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedQueryAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/base/QueryAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/base/UpdateAction.java create mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/query/PreparedSQLQueryAction.java rename api/src/main/java/cc/carm/lib/easysql/api/action/{asyncable/AsyncableQueryAction.java => query/SQLQueryAction.java} (75%) create mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLBatchUpdateAction.java create mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLUpdateAction.java create mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLBatchUpdateAction.java create mode 100644 api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLUpdateAction.java delete mode 100644 api/src/main/java/cc/carm/lib/easysql/api/builder/UpsertBuilder.java rename impl/src/main/java/cc/carm/lib/easysql/{manager => }/SQLManagerImpl.java (62%) create mode 100644 impl/src/main/java/cc/carm/lib/easysql/SQLSourceImpl.java create mode 100644 impl/src/main/java/cc/carm/lib/easysql/SQLTransactionImpl.java rename impl/src/main/java/cc/carm/lib/easysql/action/{PreparedBatchUpdateActionImpl.java => PreparedSQLBatchUpdateActionImpl.java} (71%) rename impl/src/main/java/cc/carm/lib/easysql/action/{PreparedUpdateActionImpl.java => PreparedSQLUpdateActionImpl.java} (65%) rename impl/src/main/java/cc/carm/lib/easysql/action/{BatchUpdateActionImpl.java => SQLBatchUpdateActionImpl.java} (89%) rename impl/src/main/java/cc/carm/lib/easysql/action/query/{PreparedQueryActionImpl.java => PreparedSQLQueryActionImpl.java} (78%) rename impl/src/main/java/cc/carm/lib/easysql/action/query/{QueryActionImpl.java => SQLQueryActionImpl.java} (81%) diff --git a/README.md b/README.md index f4150ea..92b5541 100644 --- a/README.md +++ b/README.md @@ -200,9 +200,11 @@ dependencies { ## 支持与捐赠 -若您觉得本插件做的不错,您可以通过捐赠支持我! +若您觉得本插件做的不错,您可以通过捐赠支持我! 感谢您对开源项目的支持! + +Many thanks to Jetbrains for kindly providing a license for me to work on this and other open-source projects. +[![](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)](https://www.jetbrains.com/?from=https://github.com/CarmJos/EasySQL) -感谢您对开源项目的支持! ## 开源协议 diff --git a/api/src/main/java/cc/carm/lib/easysql/api/SQLBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/SQLBuilder.java index 3e77152..da5bceb 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/SQLBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/SQLBuilder.java @@ -1,11 +1,11 @@ package cc.carm.lib.easysql.api; -import cc.carm.lib.easysql.api.action.SQLAction; +import cc.carm.lib.easysql.api.action.SQLBaseAction; import org.jetbrains.annotations.NotNull; /** * SQLBuilder 是用于构建SQL语句以生成SQLAction执行操作的中间类。 - *
其连接了{@link SQLManager} 与 {@link SQLAction} ,避免大量的代码堆积 + *
其连接了{@link SQLManager} 与 {@link SQLBaseAction} ,避免大量的代码堆积 *
也是本接口的核心功能所在 * * @author CarmJos diff --git a/api/src/main/java/cc/carm/lib/easysql/api/SQLManager.java b/api/src/main/java/cc/carm/lib/easysql/api/SQLManager.java index 9f4af66..05f33bf 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/SQLManager.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/SQLManager.java @@ -1,7 +1,11 @@ package cc.carm.lib.easysql.api; -import cc.carm.lib.easysql.api.action.asyncable.AsyncablePreparedBatchUpdateAction; -import cc.carm.lib.easysql.api.action.asyncable.AsyncablePreparedUpdateAction; +import cc.carm.lib.easysql.api.action.query.PreparedSQLQueryAction; +import cc.carm.lib.easysql.api.action.query.SQLQueryAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLBatchUpdateAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLUpdateAction; +import cc.carm.lib.easysql.api.action.update.SQLBatchUpdateAction; +import cc.carm.lib.easysql.api.action.update.SQLUpdateAction; import cc.carm.lib.easysql.api.builder.*; import cc.carm.lib.easysql.api.enums.IsolationLevel; import cc.carm.lib.easysql.api.function.SQLBiFunction; @@ -13,10 +17,60 @@ import org.jetbrains.annotations.Nullable; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.ResultSet; +import java.util.List; import java.util.concurrent.CompletableFuture; public interface SQLManager extends SQLSource { + /** + * 执行一条不需要返回结果的SQL语句(多用于UPDATE、REPLACE、DELETE方法) + * 该方法使用 Statement 实现,请注意SQL注入风险! + * + * @param sql SQL语句内容 + * @return 更新的行数 + * @see SQLUpdateAction + */ + @Nullable Integer executeSQL(String sql); + + /** + * 执行一条不需要返回结果的预处理SQL更改(UPDATE、REPLACE、DELETE) + * + * @param sql SQL语句内容 + * @param params SQL语句中 ? 的对应参数 + * @return 更新的行数 + * @see PreparedSQLUpdateAction + */ + @Nullable Integer executeSQL(String sql, Object[] params); + + /** + * 执行多条不需要返回结果的SQL更改(UPDATE、REPLACE、DELETE) + * + * @param sql SQL语句内容 + * @param paramsBatch SQL语句中对应?的参数组 + * @return 对应参数返回的行数 + * @see PreparedSQLBatchUpdateAction + */ + @Nullable List executeSQLBatch(String sql, Iterable paramsBatch); + + /** + * 执行多条不需要返回结果的SQL。 + * 该方法使用 Statement 实现,请注意SQL注入风险! + * + * @param sql SQL语句内容 + * @param moreSQL 更多SQL语句内容 + * @return 对应参数返回的行数 + * @see SQLBatchUpdateAction + */ + @Nullable List executeSQLBatch(@NotNull String sql, String... moreSQL); + + /** + * 执行多条不需要返回结果的SQL。 + * + * @param sqlBatch SQL语句内容 + * @return 对应参数返回的行数 + */ + @Nullable List executeSQLBatch(@NotNull Iterable sqlBatch); + default @NotNull SQLTransaction createTransaction() { return createTransaction(null); } @@ -28,7 +82,7 @@ public interface SQLManager extends SQLSource { * * @return {@link QueryBuilder} */ - @NotNull QueryBuilder createQuery(); + @NotNull QueryBuilder createQuery(); /** * 创建一条插入操作。 @@ -36,7 +90,7 @@ public interface SQLManager extends SQLSource { * @param tableName 目标表名 * @return {@link InsertBuilder} */ - @NotNull InsertBuilder> insertInto(@NotNull String tableName); + @NotNull InsertBuilder> insertInto(@NotNull String tableName); /** * 创建支持多组数据的插入操作。 @@ -44,7 +98,7 @@ public interface SQLManager extends SQLSource { * @param tableName 目标表名 * @return {@link InsertBuilder} */ - @NotNull InsertBuilder> insertBatchInto(@NotNull String tableName); + @NotNull InsertBuilder> insertBatchInto(@NotNull String tableName); /** * 创建一条替换操作。 @@ -52,7 +106,7 @@ public interface SQLManager extends SQLSource { * @param tableName 目标表名 * @return {@link ReplaceBuilder} */ - @NotNull ReplaceBuilder> replaceInto(@NotNull String tableName); + @NotNull ReplaceBuilder> replaceInto(@NotNull String tableName); /** * 创建支持多组数据的替换操作。 @@ -60,7 +114,7 @@ public interface SQLManager extends SQLSource { * @param tableName 目标表名 * @return {@link ReplaceBuilder} */ - @NotNull ReplaceBuilder> replaceBatchInto(@NotNull String tableName); + @NotNull ReplaceBuilder> replaceBatchInto(@NotNull String tableName); /** * 创建更新操作。 @@ -68,7 +122,7 @@ public interface SQLManager extends SQLSource { * @param tableName 目标表名 * @return {@link UpdateBuilder} */ - @NotNull UpdateBuilder updateInto(@NotNull String tableName); + @NotNull UpdateBuilder> updateInto(@NotNull String tableName); /** * 创建删除操作。 @@ -76,7 +130,7 @@ public interface SQLManager extends SQLSource { * @param tableName 目标表名 * @return {@link DeleteBuilder} */ - @NotNull DeleteBuilder deleteFrom(@NotNull String tableName); + @NotNull DeleteBuilder> deleteFrom(@NotNull String tableName); /** * 在库中创建一个表。 @@ -124,7 +178,8 @@ public interface SQLManager extends SQLSource { * @return 最终结果,通过 {@link CompletableFuture#get()} 可阻塞并等待结果返回。 * @throws NullPointerException 当 supplier 提供的 {@link ResultSet} 为NULL时抛出 */ - default CompletableFuture fetchMetadata(@NotNull SQLFunction supplier, @NotNull SQLFunction<@NotNull ResultSet, R> reader) { + default CompletableFuture fetchMetadata(@NotNull SQLFunction supplier, + @NotNull SQLFunction<@NotNull ResultSet, R> reader) { return fetchMetadata((meta, conn) -> supplier.apply(meta), reader); } @@ -147,6 +202,7 @@ public interface SQLManager extends SQLSource { * @return 最终结果,通过 {@link CompletableFuture#get()} 可阻塞并等待结果返回。 * @throws NullPointerException 当 supplier 提供的 {@link ResultSet} 为NULL时抛出 */ - CompletableFuture fetchMetadata(@NotNull SQLBiFunction supplier, @NotNull SQLFunction<@NotNull ResultSet, R> reader); + CompletableFuture fetchMetadata(@NotNull SQLBiFunction supplier, + @NotNull SQLFunction<@NotNull ResultSet, R> reader); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/SQLQuery.java b/api/src/main/java/cc/carm/lib/easysql/api/SQLQuery.java index 8396268..1deea1f 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/SQLQuery.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/SQLQuery.java @@ -1,10 +1,11 @@ package cc.carm.lib.easysql.api; -import cc.carm.lib.easysql.api.action.base.QueryAction; -import cc.carm.lib.easysql.api.action.base.PreparedQueryAction; +import cc.carm.lib.easysql.api.action.query.PreparedSQLQueryAction; +import cc.carm.lib.easysql.api.action.query.SQLQueryAction; import java.sql.Connection; import java.sql.ResultSet; +import java.sql.SQLException; import java.sql.Statement; import java.util.concurrent.TimeUnit; @@ -42,11 +43,11 @@ public interface SQLQuery extends AutoCloseable { SQLManager getManager(); /** - * 得到承载该SQLQuery的对应{@link QueryAction} + * 得到承载该SQLQuery的对应{@link SQLQueryAction} * - * @return {@link QueryAction} 或 {@link PreparedQueryAction} + * @return {@link SQLQueryAction} 或 {@link PreparedSQLQueryAction} */ - QueryAction getAction(); + SQLQueryAction getAction(); ResultSet getResultSet(); diff --git a/api/src/main/java/cc/carm/lib/easysql/api/SQLSource.java b/api/src/main/java/cc/carm/lib/easysql/api/SQLSource.java index ce8351e..02f62fe 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/SQLSource.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/SQLSource.java @@ -1,10 +1,6 @@ package cc.carm.lib.easysql.api; -import cc.carm.lib.easysql.api.action.*; -import cc.carm.lib.easysql.api.action.base.PreparedBatchUpdateAction; -import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; -import cc.carm.lib.easysql.api.action.base.BatchUpdateAction; -import cc.carm.lib.easysql.api.action.base.UpdateAction; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; import cc.carm.lib.easysql.api.function.SQLDebugHandler; import cc.carm.lib.easysql.api.function.SQLExceptionHandler; import org.jetbrains.annotations.NotNull; @@ -14,7 +10,6 @@ import org.slf4j.Logger; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; -import java.util.List; import java.util.Map; import java.util.UUID; import java.util.concurrent.ExecutorService; @@ -23,10 +18,10 @@ import java.util.function.Supplier; public interface SQLSource { - Logger getLogger(); + @NotNull Logger getLogger(); /** - * 获取用于执行 {@link SQLAction#executeAsync()} 的线程池。 + * 获取用于执行 {@link SQLAdvancedAction#executeAsync()} 的线程池。 *
默认线程池为 {@link #defaultExecutorPool(String)} 。 * * @return {@link ExecutorService} @@ -34,7 +29,7 @@ public interface SQLSource { @NotNull ExecutorService getExecutorPool(); /** - * 设定用于执行 {@link SQLAction#executeAsync()} 的线程池. + * 设定用于执行 {@link SQLAdvancedAction#executeAsync()} 的线程池. *
默认线程池为 {@link #defaultExecutorPool(String)} 。 * * @param executorPool {@link ExecutorService} @@ -103,7 +98,7 @@ public interface SQLSource { * * @return 查询列表 */ - @NotNull Map getActiveQuery(); + @NotNull Map getActiveQueries(); /** * 获取改管理器提供的默认异常处理器。 @@ -116,61 +111,11 @@ public interface SQLSource { /** * 设定通用的异常处理器。 - *
在使用 {@link SQLAction#execute(SQLExceptionHandler)} 等相关方法时,若传入的处理器为null,则会采用此处理器。 + *
在使用 {@link SQLAdvancedAction#execute(SQLExceptionHandler)} 等相关方法时,若传入的处理器为null,则会采用此处理器。 *
若该方法传入参数为 null,则会使用 {@link SQLExceptionHandler#detailed(Logger)} 。 * * @param handler 异常处理器 */ void setExceptionHandler(@Nullable SQLExceptionHandler handler); - /** - * 执行一条不需要返回结果的SQL语句(多用于UPDATE、REPLACE、DELETE方法) - * 该方法使用 Statement 实现,请注意SQL注入风险! - * - * @param sql SQL语句内容 - * @return 更新的行数 - * @see UpdateAction - */ - @Nullable Integer executeSQL(String sql); - - /** - * 执行一条不需要返回结果的预处理SQL更改(UPDATE、REPLACE、DELETE) - * - * @param sql SQL语句内容 - * @param params SQL语句中 ? 的对应参数 - * @return 更新的行数 - * @see PreparedUpdateAction - */ - @Nullable Integer executeSQL(String sql, Object[] params); - - /** - * 执行多条不需要返回结果的SQL更改(UPDATE、REPLACE、DELETE) - * - * @param sql SQL语句内容 - * @param paramsBatch SQL语句中对应?的参数组 - * @return 对应参数返回的行数 - * @see PreparedBatchUpdateAction - */ - @Nullable List executeSQLBatch(String sql, Iterable paramsBatch); - - - /** - * 执行多条不需要返回结果的SQL。 - * 该方法使用 Statement 实现,请注意SQL注入风险! - * - * @param sql SQL语句内容 - * @param moreSQL 更多SQL语句内容 - * @return 对应参数返回的行数 - * @see BatchUpdateAction - */ - @Nullable List executeSQLBatch(@NotNull String sql, String... moreSQL); - - /** - * 执行多条不需要返回结果的SQL。 - * - * @param sqlBatch SQL语句内容 - * @return 对应参数返回的行数 - */ - @Nullable List executeSQLBatch(@NotNull Iterable sqlBatch); - } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/SQLAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/SQLAdvancedAction.java similarity index 54% rename from api/src/main/java/cc/carm/lib/easysql/api/action/SQLAction.java rename to api/src/main/java/cc/carm/lib/easysql/api/action/SQLAdvancedAction.java index a4ecdd5..f76012d 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/SQLAction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/SQLAdvancedAction.java @@ -1,84 +1,37 @@ package cc.carm.lib.easysql.api.action; -import cc.carm.lib.easysql.api.SQLSource; import cc.carm.lib.easysql.api.function.SQLExceptionHandler; import cc.carm.lib.easysql.api.function.SQLFunction; +import cc.carm.lib.easysql.api.function.SQLHandler; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import java.sql.SQLException; -import java.util.Collections; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Future; -public interface SQLAction { - - /** - * 得到该Action的UUID - * - * @return UUID - */ - @NotNull UUID getActionUUID(); - - /** - * 得到短八位格式的UUID - * - * @return UUID(8) - */ - @NotNull String getShortID(); - - /** - * 得到该Action的创建时间。 - *
注意,此处获得的时间非时间戳毫秒数,仅用于计算耗时。 - * - * @return 创建时间 (毫秒) - */ - default long getCreateTime() { - return getCreateTime(TimeUnit.MILLISECONDS); - } - - /** - * 得到该Action的创建时间 - *
注意,此处获得的时间非时间戳毫秒数,仅用于计算耗时。 - * - * @param unit 时间单位 - * @return 创建时间 - */ - long getCreateTime(TimeUnit unit); - - /** - * 得到该Action所要执行的源SQL语句 - * - * @return 源SQL语句 - */ - @NotNull String getSQLContent(); - - /** - * 得到该Action所要执行的源SQL语句列表。 - * - * @return 源SQL语句列表 - */ - default @NotNull List getSQLContents() { - return Collections.singletonList(getSQLContent()); - } - - /** - * 得到承载该Action的对应{@link SQLSource} - * - * @return {@link SQLSource} - */ - @NotNull SQLSource getSource(); - - /** - * 执行该Action对应的SQL语句 - * - * @return 指定数据类型 - * @throws SQLException 当SQL操作出现问题时抛出 - */ - @NotNull T execute() throws SQLException; +/** + * SQLAdvancedAction 是用于承载SQL语句并进行处理、返回的高级类。 + * + *
    + *
  • 同步执行 {@link #execute()}, {@link #execute(SQLFunction, SQLExceptionHandler)} + *
    同步执行方法中有会抛出异常的方法与不抛出异常的方法, + *
    若选择不抛出异常,则返回值可能为空,需要特殊处理。
  • + * + *
  • 异步执行 {@link #executeAsync(SQLHandler, SQLExceptionHandler)} + *
    异步执行时将提供成功与异常两种处理方式 + *
    可自行选择是否对数据或异常进行处理 + *
    默认的异常处理器为 {@link #defaultExceptionHandler()} + *
    若有特殊需要,可通过{@link #setExceptionHandler(SQLExceptionHandler)} 方法修改默认的处理器
  • + *
+ * + * @param 需要返回的类型 + * @author CarmJos + * @since 0.5.0 + */ +public interface SQLAdvancedAction extends SQLBaseAction { /** * 执行语句并返回值 @@ -128,39 +81,47 @@ public interface SQLAction { } /** - * 执行语句并处理返回值 - * - * @param function 处理方法 - * @param 需要返回的内容 - * @return 指定类型数据 - * @throws SQLException 当SQL操作出现问题时抛出 + * 异步执行SQL语句,采用默认异常处理,无需返回值。 */ - @Nullable - default R executeFunction(@NotNull SQLFunction<@NotNull T, R> function) throws SQLException { - return executeFunction(function, null); + default void executeAsync() { + executeAsync(null); } /** - * 执行语句并处理返回值 + * 异步执行SQL语句 * - * @param function 处理方法 - * @param defaultResult 默认结果,若处理后的结果为null,则返回该值 - * @param 需要返回的内容 - * @return 指定类型数据 - * @throws SQLException 当SQL操作出现问题时抛出 + * @param success 成功时的操作 */ - @Nullable - @Contract("_,!null -> !null") - default R executeFunction(@NotNull SQLFunction<@NotNull T, R> function, - @Nullable R defaultResult) throws SQLException { - try { - R result = function.apply(execute()); - return result == null ? defaultResult : result; - } catch (SQLException exception) { - throw new SQLException(exception); - } + default void executeAsync(@Nullable SQLHandler success) { + executeAsync(success, null); } + /** + * 异步执行SQL语句 + * + * @param success 成功时的操作 + * @param failure 异常处理器 默认为 {@link SQLAdvancedAction#defaultExceptionHandler()} + */ + void executeAsync(@Nullable SQLHandler success, + @Nullable SQLExceptionHandler failure); + + /** + * 以异步Future方式执行SQL语句。 + * + * @return 异步执行的Future实例,可通过 {@link Future#get()} 阻塞并等待结果。 + */ + default @NotNull CompletableFuture executeFuture() { + return executeFuture((t -> null)); + } + + /** + * 以异步Future方式执行SQL语句。 + * + * @return 异步执行的Future实例,可通过 {@link Future#get()} 阻塞并等待结果。 + */ + @NotNull CompletableFuture executeFuture(@NotNull SQLFunction handler); + + default void handleException(@Nullable SQLExceptionHandler handler, SQLException exception) { if (handler == null) handler = defaultExceptionHandler(); handler.accept(exception, this); @@ -188,4 +149,5 @@ public interface SQLAction { getSource().setExceptionHandler(handler); } + } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/SQLAsyncableAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/SQLAsyncableAction.java deleted file mode 100644 index abff743..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/SQLAsyncableAction.java +++ /dev/null @@ -1,55 +0,0 @@ -package cc.carm.lib.easysql.api.action; - -import cc.carm.lib.easysql.api.function.SQLExceptionHandler; -import cc.carm.lib.easysql.api.function.SQLFunction; -import cc.carm.lib.easysql.api.function.SQLHandler; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Future; - -public interface SQLAsyncableAction extends SQLAction { - - /** - * 异步执行SQL语句,采用默认异常处理,无需返回值。 - */ - default void executeAsync() { - executeAsync(null); - } - - /** - * 异步执行SQL语句 - * - * @param success 成功时的操作 - */ - default void executeAsync(@Nullable SQLHandler success) { - executeAsync(success, null); - } - - /** - * 异步执行SQL语句 - * - * @param success 成功时的操作 - * @param failure 异常处理器 默认为 {@link SQLAction#defaultExceptionHandler()} - */ - void executeAsync(@Nullable SQLHandler success, - @Nullable SQLExceptionHandler failure); - - /** - * 以异步Future方式执行SQL语句。 - * - * @return 异步执行的Future实例,可通过 {@link Future#get()} 阻塞并等待结果。 - */ - default @NotNull CompletableFuture executeFuture() { - return executeFuture((t -> null)); - } - - /** - * 以异步Future方式执行SQL语句。 - * - * @return 异步执行的Future实例,可通过 {@link Future#get()} 阻塞并等待结果。 - */ - @NotNull CompletableFuture executeFuture(@NotNull SQLFunction handler); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/SQLBaseAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/SQLBaseAction.java new file mode 100644 index 0000000..3a52768 --- /dev/null +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/SQLBaseAction.java @@ -0,0 +1,122 @@ +package cc.carm.lib.easysql.api.action; + +import cc.carm.lib.easysql.api.SQLSource; +import cc.carm.lib.easysql.api.function.SQLFunction; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.sql.SQLException; +import java.util.Collections; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +/** + * SQLBaseAction 是用于承载SQL语句并进行处理、返回的基本类。 + * + * @param 需要返回的类型 + * @author CarmJos + * @since 0.0.1 + */ +public interface SQLBaseAction { + + /** + * 得到该Action的UUID + * + * @return UUID + */ + @NotNull UUID getActionUUID(); + + /** + * 得到短八位格式的UUID + * + * @return UUID(8) + */ + @NotNull String getShortID(); + + /** + * 得到该Action的创建时间。 + *
注意,此处获得的时间非时间戳毫秒数,仅用于计算耗时。 + * + * @return 创建时间 (毫秒) + */ + default long getCreateTime() { + return getCreateTime(TimeUnit.MILLISECONDS); + } + + /** + * 得到该Action的创建时间 + *
注意,此处获得的时间非时间戳毫秒数,仅用于计算耗时。 + * + * @param unit 时间单位 + * @return 创建时间 + */ + long getCreateTime(TimeUnit unit); + + /** + * 得到该Action所要执行的源SQL语句 + * + * @return 源SQL语句 + */ + @NotNull String getSQLContent(); + + /** + * 得到该Action所要执行的源SQL语句列表。 + * + * @return 源SQL语句列表 + */ + default @NotNull List getSQLContents() { + return Collections.singletonList(getSQLContent()); + } + + /** + * 得到承载该Action的对应{@link SQLSource} + * + * @return {@link SQLSource} + */ + @NotNull SQLSource getSource(); + + /** + * 执行该Action对应的SQL语句 + * + * @return 指定数据类型 + * @throws SQLException 当SQL操作出现问题时抛出 + */ + @NotNull T execute() throws SQLException; + + /** + * 执行语句并处理返回值 + * + * @param function 处理方法 + * @param 需要返回的内容 + * @return 指定类型数据 + * @throws SQLException 当SQL操作出现问题时抛出 + */ + @Nullable + default R executeFunction(@NotNull SQLFunction<@NotNull T, R> function) throws SQLException { + return executeFunction(function, null); + } + + /** + * 执行语句并处理返回值 + * + * @param function 处理方法 + * @param defaultResult 默认结果,若处理后的结果为null,则返回该值 + * @param 需要返回的内容 + * @return 指定类型数据 + * @throws SQLException 当SQL操作出现问题时抛出 + */ + @Nullable + @Contract("_,!null -> !null") + default R executeFunction(@NotNull SQLFunction<@NotNull T, R> function, + @Nullable R defaultResult) throws SQLException { + try { + R result = function.apply(execute()); + return result == null ? defaultResult : result; + } catch (SQLException exception) { + throw new SQLException(exception); + } + } + +} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableBatchUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableBatchUpdateAction.java deleted file mode 100644 index fc9a4d8..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableBatchUpdateAction.java +++ /dev/null @@ -1,28 +0,0 @@ -package cc.carm.lib.easysql.api.action.asyncable; - -import cc.carm.lib.easysql.api.action.SQLAsyncableAction; -import cc.carm.lib.easysql.api.action.base.BatchUpdateAction; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -@SuppressWarnings("UnusedReturnValue") -public interface AsyncableBatchUpdateAction - extends SQLAsyncableAction> { - - /** - * 添加一条批量执行的SQL语句 - * - * @param sql SQL语句 - * @return {@link BatchUpdateAction} - */ - BatchUpdateAction addBatch(@NotNull String sql); - - @Override - default @NotNull String getSQLContent() { - return getSQLContents().get(0); - } - - @Override - @NotNull List getSQLContents(); -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedBatchUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedBatchUpdateAction.java deleted file mode 100644 index 8aabe2a..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedBatchUpdateAction.java +++ /dev/null @@ -1,43 +0,0 @@ -package cc.carm.lib.easysql.api.action.asyncable; - -import cc.carm.lib.easysql.api.action.SQLAsyncableAction; -import cc.carm.lib.easysql.api.action.base.UpdateAction; - -import java.util.List; - -public interface AsyncablePreparedBatchUpdateAction extends SQLAsyncableAction> { - - /** - * 设定多组SQL语句中所有 ? 对应的参数 - * - * @param allValues 所有参数内容 - * @return {@link AsyncablePreparedBatchUpdateAction} - */ - AsyncablePreparedBatchUpdateAction allValues(Iterable allValues); - - /** - * 添加一组SQL语句中所有 ? 对应的参数 - * - * @param values 参数内容 - * @return {@link AsyncablePreparedBatchUpdateAction} - */ - AsyncablePreparedBatchUpdateAction values(Object... values); - - /** - * 设定该操作返回自增键序列。 - * - * @return {@link UpdateAction} - */ - AsyncablePreparedBatchUpdateAction returnGeneratedKeys(); - - /** - * 设定该操作返回自增键序列。 - * - * @param keyTypeClass 自增序列的数字类型 - * @param 自增键序列类型 {@link Number} - * @return {@link UpdateAction} - * @since 0.4.0 - */ - AsyncablePreparedBatchUpdateAction returnGeneratedKeys(Class keyTypeClass); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedQueryAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedQueryAction.java deleted file mode 100644 index 4f4ae74..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedQueryAction.java +++ /dev/null @@ -1,35 +0,0 @@ -package cc.carm.lib.easysql.api.action.asyncable; - -import org.jetbrains.annotations.Nullable; - -import java.sql.PreparedStatement; -import java.util.function.Consumer; - -public interface AsyncablePreparedQueryAction extends AsyncableQueryAction { - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link AsyncablePreparedQueryAction} - */ - AsyncablePreparedQueryAction setParams(@Nullable Object... params); - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link AsyncablePreparedQueryAction} - */ - AsyncablePreparedQueryAction setParams(@Nullable Iterable params); - - /** - * 直接对 {@link PreparedStatement} 进行处理 - * - * @param statement {@link Consumer} 处理操作 - * 若为空则不进行处理 - * @return {@link AsyncablePreparedQueryAction} - */ - AsyncablePreparedQueryAction handleStatement(@Nullable Consumer statement); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedUpdateAction.java deleted file mode 100644 index 1a7ad46..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncablePreparedUpdateAction.java +++ /dev/null @@ -1,26 +0,0 @@ -package cc.carm.lib.easysql.api.action.asyncable; - -import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; -import org.jetbrains.annotations.Nullable; - -public interface AsyncablePreparedUpdateAction - extends AsyncableUpdateAction { - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link PreparedUpdateAction} - */ - AsyncablePreparedUpdateAction values(Object... params); - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link PreparedUpdateAction} - * @since 0.4.0 - */ - AsyncablePreparedUpdateAction values(@Nullable Iterable params); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableUpdateAction.java deleted file mode 100644 index d6cac20..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableUpdateAction.java +++ /dev/null @@ -1,27 +0,0 @@ -package cc.carm.lib.easysql.api.action.asyncable; - -import cc.carm.lib.easysql.api.action.SQLAsyncableAction; -import cc.carm.lib.easysql.api.action.base.UpdateAction; - -public interface AsyncableUpdateAction - extends SQLAsyncableAction { - - - /** - * 设定该操作返回自增键序列。 - * - * @return {@link UpdateAction} - */ - AsyncableUpdateAction returnGeneratedKey(); - - /** - * 设定该操作返回自增键序列。 - * - * @param keyTypeClass 自增序列的数字类型 - * @param 自增键序列类型 {@link Number} - * @return {@link UpdateAction} - * @since 0.4.0 - */ - AsyncableUpdateAction returnGeneratedKey(Class keyTypeClass); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/base/BatchUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/base/BatchUpdateAction.java deleted file mode 100644 index bad2f49..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/base/BatchUpdateAction.java +++ /dev/null @@ -1,27 +0,0 @@ -package cc.carm.lib.easysql.api.action.base; - -import cc.carm.lib.easysql.api.action.SQLAction; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -@SuppressWarnings("UnusedReturnValue") -public interface BatchUpdateAction extends SQLAction> { - - /** - * 添加一条批量执行的SQL语句 - * - * @param sql SQL语句 - * @return {@link BatchUpdateAction} - */ - BatchUpdateAction addBatch(@NotNull String sql); - - @Override - default @NotNull String getSQLContent() { - return getSQLContents().get(0); - } - - @Override - @NotNull List getSQLContents(); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedBatchUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedBatchUpdateAction.java deleted file mode 100644 index 184c931..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedBatchUpdateAction.java +++ /dev/null @@ -1,42 +0,0 @@ -package cc.carm.lib.easysql.api.action.base; - -import cc.carm.lib.easysql.api.action.SQLAction; - -import java.util.List; - -public interface PreparedBatchUpdateAction extends SQLAction> { - - /** - * 设定多组SQL语句中所有 ? 对应的参数 - * - * @param allValues 所有参数内容 - * @return {@link PreparedBatchUpdateAction} - */ - PreparedBatchUpdateAction allValues(Iterable allValues); - - /** - * 添加一组SQL语句中所有 ? 对应的参数 - * - * @param values 参数内容 - * @return {@link PreparedBatchUpdateAction} - */ - PreparedBatchUpdateAction values(Object... values); - - /** - * 设定该操作返回自增键序列。 - * - * @return {@link UpdateAction} - */ - PreparedBatchUpdateAction returnGeneratedKeys(); - - /** - * 设定该操作返回自增键序列。 - * - * @param keyTypeClass 自增序列的数字类型 - * @param 自增键序列类型 {@link Number} - * @return {@link UpdateAction} - * @since 0.4.0 - */ - PreparedBatchUpdateAction returnGeneratedKeys(Class keyTypeClass); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedQueryAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedQueryAction.java deleted file mode 100644 index cfaf1ac..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedQueryAction.java +++ /dev/null @@ -1,35 +0,0 @@ -package cc.carm.lib.easysql.api.action.base; - -import org.jetbrains.annotations.Nullable; - -import java.sql.PreparedStatement; -import java.util.function.Consumer; - -public interface PreparedQueryAction extends QueryAction { - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link PreparedQueryAction} - */ - PreparedQueryAction setParams(@Nullable Object... params); - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link PreparedQueryAction} - */ - PreparedQueryAction setParams(@Nullable Iterable params); - - /** - * 直接对 {@link PreparedStatement} 进行处理 - * - * @param statement {@link Consumer} 处理操作 - * 若为空则不进行处理 - * @return {@link PreparedQueryAction} - */ - PreparedQueryAction handleStatement(@Nullable Consumer statement); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedUpdateAction.java deleted file mode 100644 index 0c5c3f6..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/base/PreparedUpdateAction.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.carm.lib.easysql.api.action.base; - -import org.jetbrains.annotations.Nullable; - -public interface PreparedUpdateAction extends UpdateAction { - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link PreparedUpdateAction} - */ - PreparedUpdateAction values(Object... params); - - /** - * 设定SQL语句中所有 ? 对应的参数 - * - * @param params 参数内容 - * @return {@link PreparedUpdateAction} - * @since 0.4.0 - */ - PreparedUpdateAction values(@Nullable Iterable params); - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/base/QueryAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/base/QueryAction.java deleted file mode 100644 index 9f106c7..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/base/QueryAction.java +++ /dev/null @@ -1,45 +0,0 @@ -package cc.carm.lib.easysql.api.action.base; - -import cc.carm.lib.easysql.api.action.SQLAction; -import cc.carm.lib.easysql.api.function.SQLFunction; -import cc.carm.lib.easysql.api.SQLQuery; -import cc.carm.lib.easysql.api.function.SQLExceptionHandler; -import cc.carm.lib.easysql.api.function.SQLHandler; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.sql.SQLException; - -/** - * SQLQueryAction 是用于承载SQL查询语句并进行处理、返回并自动关闭连接的基本类。 - * - *
    - *
  • 同步执行 {@link #execute()}, {@link #execute(SQLFunction, SQLExceptionHandler)} - *
    同步执行方法中有会抛出异常的方法与不抛出异常的方法, - *
    若选择不抛出异常,则返回值可能为空,需要特殊处理。
  • - * - *
  • 异步执行 {@link #executeAsync(SQLHandler, SQLExceptionHandler)} - *
    异步执行时将提供成功与异常两种处理方式 - *
    可自行选择是否对数据或异常进行处理 - *
    默认的异常处理器为 {@link #defaultExceptionHandler()}
  • - *
- * - * 注意: 无论是否异步,都不需要自行关闭ResultSet,本API已自动关闭 - * - * @author CarmJos - * @since 0.2.6 - */ -public interface QueryAction extends SQLAction { - - @Override - @Contract("_,!null -> !null") - default @Nullable R executeFunction(@NotNull SQLFunction<@NotNull SQLQuery, R> function, - @Nullable R defaultResult) throws SQLException { - try (SQLQuery value = execute()) { - R result = function.apply(value); - return result == null ? defaultResult : result; - } - } - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/base/UpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/base/UpdateAction.java deleted file mode 100644 index b67d50c..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/base/UpdateAction.java +++ /dev/null @@ -1,25 +0,0 @@ -package cc.carm.lib.easysql.api.action.base; - -import cc.carm.lib.easysql.api.action.SQLAction; - -public interface UpdateAction extends SQLAction { - - /** - * 设定该操作返回自增键序列。 - * - * @return {@link UpdateAction} - */ - UpdateAction returnGeneratedKey(); - - /** - * 设定该操作返回自增键序列。 - * - * @param keyTypeClass 自增序列的数字类型 - * @param 自增键序列类型 {@link Number} - * @return {@link UpdateAction} - * @since 0.4.0 - */ - UpdateAction returnGeneratedKey(Class keyTypeClass); - - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/query/PreparedSQLQueryAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/query/PreparedSQLQueryAction.java new file mode 100644 index 0000000..efbb514 --- /dev/null +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/query/PreparedSQLQueryAction.java @@ -0,0 +1,44 @@ +package cc.carm.lib.easysql.api.action.query; + +import cc.carm.lib.easysql.api.SQLQuery; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; +import cc.carm.lib.easysql.api.function.SQLHandler; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.sql.PreparedStatement; + +public interface PreparedSQLQueryAction> extends SQLQueryAction { + + interface Base extends PreparedSQLQueryAction { + } + + interface Advanced extends PreparedSQLQueryAction, SQLAdvancedAction { + } + + /** + * 设定SQL语句中所有 ? 对应的参数 + * + * @param params 参数内容 + * @return {@link PreparedSQLQueryAction} + */ + @NotNull B setParams(@Nullable Object... params); + + /** + * 设定SQL语句中所有 ? 对应的参数 + * + * @param params 参数内容 + * @return {@link PreparedSQLQueryAction} + */ + @NotNull B setParams(@Nullable Iterable params); + + /** + * 直接对 {@link PreparedStatement} 进行处理 + * + * @param statement 通过 {@link SQLHandler} 处理操作 + * 若为空则不进行处理 + * @return {@link PreparedSQLQueryAction} + */ + @NotNull B handleStatement(@Nullable SQLHandler statement); + +} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableQueryAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/query/SQLQueryAction.java similarity index 75% rename from api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableQueryAction.java rename to api/src/main/java/cc/carm/lib/easysql/api/action/query/SQLQueryAction.java index c2a238d..b862ecb 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/asyncable/AsyncableQueryAction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/query/SQLQueryAction.java @@ -1,7 +1,8 @@ -package cc.carm.lib.easysql.api.action.asyncable; +package cc.carm.lib.easysql.api.action.query; import cc.carm.lib.easysql.api.SQLQuery; -import cc.carm.lib.easysql.api.action.SQLAsyncableAction; +import cc.carm.lib.easysql.api.action.SQLBaseAction; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; import cc.carm.lib.easysql.api.function.SQLExceptionHandler; import cc.carm.lib.easysql.api.function.SQLFunction; import cc.carm.lib.easysql.api.function.SQLHandler; @@ -19,7 +20,7 @@ import java.sql.SQLException; *
同步执行方法中有会抛出异常的方法与不抛出异常的方法, *
若选择不抛出异常,则返回值可能为空,需要特殊处理。 * - *
  • 异步执行 {@link #executeAsync(SQLHandler, SQLExceptionHandler)} + *
  • 异步执行 {@link Advanced#executeAsync(SQLHandler, SQLExceptionHandler)} *
    异步执行时将提供成功与异常两种处理方式 *
    可自行选择是否对数据或异常进行处理 *
    默认的异常处理器为 {@link #defaultExceptionHandler()}
  • @@ -30,7 +31,13 @@ import java.sql.SQLException; * @author CarmJos * @since 0.2.6 */ -public interface AsyncableQueryAction extends SQLAsyncableAction { +public interface SQLQueryAction> extends SQLBaseAction { + + interface Base extends SQLQueryAction { + } + + interface Advanced extends SQLQueryAction, SQLAdvancedAction { + } @Override @Contract("_,!null -> !null") diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLBatchUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLBatchUpdateAction.java new file mode 100644 index 0000000..4233c24 --- /dev/null +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLBatchUpdateAction.java @@ -0,0 +1,49 @@ +package cc.carm.lib.easysql.api.action.update; + +import cc.carm.lib.easysql.api.action.SQLBaseAction; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; + +import java.util.List; + +public interface PreparedSQLBatchUpdateAction> + extends SQLBaseAction> { + + interface Base extends PreparedSQLBatchUpdateAction> { + } + + interface Advanced extends PreparedSQLBatchUpdateAction>, SQLAdvancedAction> { + } + + /** + * 设定多组SQL语句中所有 ? 对应的参数 + * + * @param allValues 所有参数内容 + * @return {@link PreparedSQLBatchUpdateAction} + */ + B allValues(Iterable allValues); + + /** + * 添加一组SQL语句中所有 ? 对应的参数 + * + * @param values 参数内容 + * @return {@link PreparedSQLBatchUpdateAction} + */ + B addValues(Object... values); + + /** + * 设定该操作返回自增键序列。 + * + * @return {@link PreparedSQLBatchUpdateAction} + */ + B returnGeneratedKeys(); + + /** + * 设定该操作返回自增键序列。 + * + * @param keyTypeClass 自增序列的数字类型 + * @param 自增键序列类型 {@link Number} + * @return {@link PreparedSQLBatchUpdateAction} + * @since 0.4.0 + */ + > D returnGeneratedKeys(Class keyTypeClass); +} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLUpdateAction.java new file mode 100644 index 0000000..3404aca --- /dev/null +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/update/PreparedSQLUpdateAction.java @@ -0,0 +1,32 @@ +package cc.carm.lib.easysql.api.action.update; + +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; +import org.jetbrains.annotations.Nullable; + +public interface PreparedSQLUpdateAction> + extends SQLUpdateAction { + + interface Base extends PreparedSQLUpdateAction> { + } + + interface Advanced extends PreparedSQLUpdateAction>, SQLAdvancedAction { + } + + /** + * 设定SQL语句中所有 ? 对应的参数 + * + * @param params 参数内容 + * @return {@link PreparedSQLUpdateAction} + */ + B values(Object... params); + + /** + * 设定SQL语句中所有 ? 对应的参数 + * + * @param params 参数内容 + * @return {@link PreparedSQLUpdateAction} + * @since 0.4.0 + */ + B values(@Nullable Iterable params); + +} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLBatchUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLBatchUpdateAction.java new file mode 100644 index 0000000..dd5235c --- /dev/null +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLBatchUpdateAction.java @@ -0,0 +1,33 @@ +package cc.carm.lib.easysql.api.action.update; + +import cc.carm.lib.easysql.api.action.SQLBaseAction; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public interface SQLBatchUpdateAction> extends SQLBaseAction { + + interface Base extends SQLBatchUpdateAction>, SQLBaseAction { + } + + interface Advanced extends SQLBatchUpdateAction>, SQLAdvancedAction { + } + + /** + * 添加一条批量执行的SQL语句 + * + * @param sql SQL语句 + * @return {@link SQLBatchUpdateAction} + */ + B addBatch(@NotNull String sql); + + @Override + default @NotNull String getSQLContent() { + return getSQLContents().get(0); + } + + @Override + @NotNull List getSQLContents(); + +} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLUpdateAction.java new file mode 100644 index 0000000..b73b718 --- /dev/null +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/update/SQLUpdateAction.java @@ -0,0 +1,33 @@ +package cc.carm.lib.easysql.api.action.update; + +import cc.carm.lib.easysql.api.action.SQLBaseAction; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; + +public interface SQLUpdateAction> extends SQLBaseAction { + + interface Base extends SQLUpdateAction> { + + } + + interface Advanced extends SQLUpdateAction>, SQLAdvancedAction { + + } + + /** + * 设定该操作返回自增键序列。 + * + * @return {@link SQLUpdateAction} + */ + B returnGeneratedKey(); + + /** + * 设定该操作返回自增键序列。 + * + * @param keyTypeClass 自增序列的数字类型 + * @param 自增键序列类型 {@link Number} + * @return {@link SQLUpdateAction} + * @since 0.4.0 + */ + > D returnGeneratedKey(Class keyTypeClass); + +} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/ConditionalBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/ConditionalBuilder.java index 3e55f07..474ef73 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/ConditionalBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/ConditionalBuilder.java @@ -1,20 +1,21 @@ package cc.carm.lib.easysql.api.builder; import cc.carm.lib.easysql.api.SQLBuilder; +import cc.carm.lib.easysql.api.action.SQLBaseAction; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Date; import java.util.LinkedHashMap; -public interface ConditionalBuilder, T extends SQLAction> extends SQLBuilder { +public interface ConditionalBuilder, T extends SQLBaseAction> extends SQLBuilder { /** * 将现有条件构建完整的SQL语句用于执行。 * - * @return {@link SQLAction} + * @return {@link SQLBaseAction} */ - T build(); + @NotNull T build(); /** * 设定限定的条目数 @@ -22,7 +23,7 @@ public interface ConditionalBuilder, T extend * @param limit 条数限制 * @return {@link B} */ - B limit(int limit); + @NotNull B limit(int limit); /** * 直接设定条件的源文本,不需要以WHERE开头。 @@ -31,7 +32,7 @@ public interface ConditionalBuilder, T extend * @param condition 条件文本,不需要以WHERE开头。 * @return {@link B} */ - B where(@Nullable String condition); + @NotNull B where(@Nullable String condition); /** * 直接设定每个条件的文本与其对应数值,将以AND链接,且不需要以WHERE开头。 @@ -40,17 +41,17 @@ public interface ConditionalBuilder, T extend * @param conditionSQLs 条件内容,将以AND链接,且不需要以WHERE开头。 * @return {@link B} */ - B where(LinkedHashMap<@NotNull String, @Nullable Object> conditionSQLs); + @NotNull B where(LinkedHashMap<@NotNull String, @Nullable Object> conditionSQLs); - B addCondition(@Nullable String condition); + @NotNull B addCondition(@Nullable String condition); - B addCondition(@NotNull String columnName, @NotNull String operator, @Nullable Object queryValue); + @NotNull B addCondition(@NotNull String columnName, @NotNull String operator, @Nullable Object queryValue); - B addCondition(@NotNull String columnName, @Nullable Object queryValue); + @NotNull B addCondition(@NotNull String columnName, @Nullable Object queryValue); - B addCondition(@NotNull String[] columnNames, @Nullable Object[] queryValues); + @NotNull B addCondition(@NotNull String[] columnNames, @Nullable Object[] queryValues); - B addNotNullCondition(@NotNull String columnName); + @NotNull B addNotNullCondition(@NotNull String columnName); /** * 添加时间的限定条件。 若设定了开始时间,则限定条件为 {@code endMillis >= startMillis}; @@ -60,7 +61,7 @@ public interface ConditionalBuilder, T extend * @param endMillis 结束时间戳,若{@code <0}则不作限定 * @return {@link B} */ - default B addTimeCondition(@NotNull String columnName, long startMillis, long endMillis) { + default @NotNull B addTimeCondition(@NotNull String columnName, long startMillis, long endMillis) { return addTimeCondition(columnName, startMillis > 0 ? new Date(startMillis) : null, endMillis > 0 ? new Date(endMillis) : null @@ -75,7 +76,7 @@ public interface ConditionalBuilder, T extend * @param endDate 结束时间,若为null则不作限定 * @return {@link B} */ - B addTimeCondition(@NotNull String columnName, @Nullable java.util.Date startDate, @Nullable java.util.Date endDate); + @NotNull B addTimeCondition(@NotNull String columnName, @Nullable java.util.Date startDate, @Nullable java.util.Date endDate); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/DeleteBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/DeleteBuilder.java index 9757638..6547f81 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/DeleteBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/DeleteBuilder.java @@ -1,7 +1,11 @@ package cc.carm.lib.easysql.api.builder; -public interface DeleteBuilder extends ConditionalBuilder> { +import cc.carm.lib.easysql.api.action.update.PreparedSQLUpdateAction; +import org.jetbrains.annotations.NotNull; - String getTableName(); +public interface DeleteBuilder> + extends ConditionalBuilder, B> { + + @NotNull String getTableName(); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/InsertBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/InsertBuilder.java index d606ec9..e99d779 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/InsertBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/InsertBuilder.java @@ -1,15 +1,17 @@ package cc.carm.lib.easysql.api.builder; +import org.jetbrains.annotations.NotNull; + import java.util.Arrays; import java.util.List; public interface InsertBuilder { - String getTableName(); + @NotNull String getTableName(); - T columns(List columnNames); + @NotNull T columns(List columnNames); - default T columns(String... columnNames) { + default @NotNull T columns(String... columnNames) { return columns(columnNames == null ? null : Arrays.asList(columnNames)); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/QueryBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/QueryBuilder.java index 655002f..8882d35 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/QueryBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/QueryBuilder.java @@ -1,30 +1,30 @@ package cc.carm.lib.easysql.api.builder; import cc.carm.lib.easysql.api.SQLBuilder; -import cc.carm.lib.easysql.api.action.base.QueryAction; -import cc.carm.lib.easysql.api.action.base.PreparedQueryAction; +import cc.carm.lib.easysql.api.action.query.PreparedSQLQueryAction; +import cc.carm.lib.easysql.api.action.query.SQLQueryAction; import org.jetbrains.annotations.NotNull; -public interface QueryBuilder extends SQLBuilder { +public interface QueryBuilder, P extends PreparedSQLQueryAction

    > extends SQLBuilder { /** * 通过一条 SQL语句创建查询。 * 该方法使用 Statement 实现,请注意SQL注入风险! * * @param sql SQL语句 - * @return {@link QueryAction} + * @return {@link SQLQueryAction} * @deprecated 存在SQL注入风险,建议使用 {@link QueryBuilder#withPreparedSQL(String)} */ @Deprecated - QueryAction withSQL(@NotNull String sql); + @NotNull Q withSQL(@NotNull String sql); /** * 通过一条 SQL语句创建预查询 * * @param sql SQL语句 - * @return {@link PreparedQueryAction} + * @return {@link PreparedSQLQueryAction} */ - PreparedQueryAction withPreparedSQL(@NotNull String sql); + @NotNull P withPreparedSQL(@NotNull String sql); /** * 创建表查询 @@ -32,6 +32,6 @@ public interface QueryBuilder extends SQLBuilder { * @param tableName 表名 * @return {@link TableQueryBuilder} */ - TableQueryBuilder fromTable(@NotNull String tableName); + @NotNull TableQueryBuilder

    fromTable(@NotNull String tableName); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/ReplaceBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/ReplaceBuilder.java index f480800..9022408 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/ReplaceBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/ReplaceBuilder.java @@ -1,6 +1,7 @@ package cc.carm.lib.easysql.api.builder; -import cc.carm.lib.easysql.api.action.SQLAction; +import cc.carm.lib.easysql.api.action.SQLBaseAction; +import org.jetbrains.annotations.NotNull; import java.util.Arrays; import java.util.List; @@ -10,15 +11,15 @@ import java.util.List; *
    执行后,将通过表中键判断该数据是否存在,若存在则用新数据替换原来的值,若不存在则会插入该数据。 *
    在使用REPLACE时,表与所给行列数据中必须包含唯一索引(或主键),且索引不得为空值,否则将等同于插入语句。 * - * @param 最终构建出的 {@link SQLAction} 类型 + * @param 最终构建出的 {@link SQLBaseAction} 类型 */ -public interface ReplaceBuilder> { +public interface ReplaceBuilder> { - String getTableName(); + @NotNull String getTableName(); - T columns(List columnNames); + @NotNull T columns(List columnNames); - default T columns(String... columnNames) { + default @NotNull T columns(String... columnNames) { return columns(columnNames == null ? null : Arrays.asList(columnNames)); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/TableAlterBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/TableAlterBuilder.java index be26085..cb0d2de 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/TableAlterBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/TableAlterBuilder.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.api.builder; import cc.carm.lib.easysql.api.SQLBuilder; -import cc.carm.lib.easysql.api.action.base.UpdateAction; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; import cc.carm.lib.easysql.api.enums.IndexType; import cc.carm.lib.easysql.api.enums.NumberType; import org.jetbrains.annotations.NotNull; @@ -9,46 +9,46 @@ import org.jetbrains.annotations.Nullable; public interface TableAlterBuilder extends SQLBuilder { - SQLAction renameTo(@NotNull String newTableName); + @NotNull SQLAdvancedAction renameTo(@NotNull String newTableName); - SQLAction changeComment(@NotNull String newTableComment); + @NotNull SQLAdvancedAction changeComment(@NotNull String newTableComment); - SQLAction setAutoIncrementIndex(int index); + @NotNull SQLAdvancedAction setAutoIncrementIndex(int index); - SQLAction addIndex(@NotNull IndexType indexType, @Nullable String indexName, - @NotNull String columnName, @NotNull String... moreColumns); + @NotNull SQLAdvancedAction addIndex(@NotNull IndexType indexType, @Nullable String indexName, + @NotNull String columnName, @NotNull String... moreColumns); /** * 为该表移除一个索引 * * @param indexName 索引名 - * @return {@link UpdateAction} + * @return {@link SQLAdvancedAction} */ - SQLAction dropIndex(@NotNull String indexName); + @NotNull SQLAdvancedAction dropIndex(@NotNull String indexName); /** * 为该表移除一个外键 * * @param keySymbol 外键名 - * @return {@link UpdateAction} + * @return {@link SQLAdvancedAction} */ - SQLAction dropForeignKey(@NotNull String keySymbol); + @NotNull SQLAdvancedAction dropForeignKey(@NotNull String keySymbol); /** * 为该表移除主键(须添加新主键) * - * @return {@link UpdateAction} + * @return {@link SQLAdvancedAction} */ - SQLAction dropPrimaryKey(); + @NotNull SQLAdvancedAction dropPrimaryKey(); /** * 为表添加一列 * * @param columnName 列名 * @param settings 列的相关设定 - * @return {@link UpdateAction} + * @return {@link SQLAdvancedAction} */ - default SQLAction addColumn(@NotNull String columnName, @NotNull String settings) { + default @NotNull SQLAdvancedAction addColumn(@NotNull String columnName, @NotNull String settings) { return addColumn(columnName, settings, null); } @@ -60,23 +60,27 @@ public interface TableAlterBuilder extends SQLBuilder { * @param afterColumn 该列增添到哪个列的后面, *

    该参数若省缺则放于最后一行 *

    若为 "" 则置于首行。 - * @return {@link UpdateAction} + * @return {@link SQLAdvancedAction} */ - SQLAction addColumn(@NotNull String columnName, @NotNull String settings, @Nullable String afterColumn); + @NotNull SQLAdvancedAction addColumn(@NotNull String columnName, + @NotNull String settings, + @Nullable String afterColumn); - SQLAction renameColumn(@NotNull String columnName, @NotNull String newName); + @NotNull SQLAdvancedAction renameColumn(@NotNull String columnName, @NotNull String newName); - SQLAction modifyColumn(@NotNull String columnName, @NotNull String settings); + @NotNull SQLAdvancedAction modifyColumn(@NotNull String columnName, @NotNull String settings); - default SQLAction modifyColumn(@NotNull String columnName, @NotNull String columnSettings, @NotNull String afterColumn) { + default @NotNull SQLAdvancedAction modifyColumn(@NotNull String columnName, + @NotNull String columnSettings, + @NotNull String afterColumn) { return modifyColumn(columnName, columnSettings + " AFTER `" + afterColumn + "`"); } - SQLAction removeColumn(@NotNull String columnName); + @NotNull SQLAdvancedAction removeColumn(@NotNull String columnName); - SQLAction setColumnDefault(@NotNull String columnName, @NotNull String defaultValue); + @NotNull SQLAdvancedAction setColumnDefault(@NotNull String columnName, @NotNull String defaultValue); - SQLAction removeColumnDefault(@NotNull String columnName); + @NotNull SQLAdvancedAction removeColumnDefault(@NotNull String columnName); /** * 为该表添加一个自增列 @@ -89,8 +93,9 @@ public interface TableAlterBuilder extends SQLBuilder { * @param unsigned 是否采用 UNSIGNED (即无负数,可以增加自增键的最高数,建议为true) * @return {@link TableCreateBuilder} */ - default SQLAction addAutoIncrementColumn(@NotNull String columnName, @Nullable NumberType numberType, - boolean primary, boolean unsigned) { + default @NotNull SQLAdvancedAction addAutoIncrementColumn(@NotNull String columnName, + @Nullable NumberType numberType, + boolean primary, boolean unsigned) { return addColumn(columnName, (numberType == null ? NumberType.INT : numberType).name() + (unsigned ? " UNSIGNED " : " ") @@ -108,7 +113,8 @@ public interface TableAlterBuilder extends SQLBuilder { * @param numberType 数字类型,若省缺则为 {@link NumberType#INT} * @return {@link TableAlterBuilder} */ - default SQLAction addAutoIncrementColumn(@NotNull String columnName, @NotNull NumberType numberType) { + default @NotNull SQLAdvancedAction addAutoIncrementColumn(@NotNull String columnName, + @NotNull NumberType numberType) { return addAutoIncrementColumn(columnName, numberType, false, true); } @@ -121,7 +127,7 @@ public interface TableAlterBuilder extends SQLBuilder { * @param columnName 列名 * @return {@link TableAlterBuilder} */ - default SQLAction addAutoIncrementColumn(@NotNull String columnName) { + default @NotNull SQLAdvancedAction addAutoIncrementColumn(@NotNull String columnName) { return addAutoIncrementColumn(columnName, NumberType.INT); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/TableCreateBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/TableCreateBuilder.java index 170a71d..822b6bd 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/TableCreateBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/TableCreateBuilder.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.api.builder; import cc.carm.lib.easysql.api.SQLBuilder; -import cc.carm.lib.easysql.api.action.base.UpdateAction; +import cc.carm.lib.easysql.api.action.update.SQLUpdateAction; import cc.carm.lib.easysql.api.enums.ForeignKeyRule; import cc.carm.lib.easysql.api.enums.IndexType; import cc.carm.lib.easysql.api.enums.NumberType; @@ -19,9 +19,9 @@ public interface TableCreateBuilder extends SQLBuilder { /** * 将现有条件构建完整的SQL语句用于执行。 * - * @return {@link UpdateAction} + * @return {@link SQLUpdateAction.Advanced} */ - UpdateAction build(); + @NotNull SQLUpdateAction.Advanced build(); @NotNull String getTableName(); @@ -33,7 +33,7 @@ public interface TableCreateBuilder extends SQLBuilder { */ @NotNull String getTableSettings(); - TableCreateBuilder setTableSettings(@NotNull String settings); + @NotNull TableCreateBuilder setTableSettings(@NotNull String settings); /** * 设定表的标注,一般用于解释该表的作用。 @@ -41,7 +41,7 @@ public interface TableCreateBuilder extends SQLBuilder { * @param comment 表标注 * @return {@link TableCreateBuilder} */ - TableCreateBuilder setTableComment(@Nullable String comment); + @NotNull TableCreateBuilder setTableComment(@Nullable String comment); /** * 直接设定表的所有列信息 @@ -49,7 +49,7 @@ public interface TableCreateBuilder extends SQLBuilder { * @param columns 列的相关信息 (包括列设定) * @return {@link TableCreateBuilder} */ - TableCreateBuilder setColumns(@NotNull String... columns); + @NotNull TableCreateBuilder setColumns(@NotNull String... columns); /** * 为该表添加一个列 @@ -58,7 +58,7 @@ public interface TableCreateBuilder extends SQLBuilder { *
    如 `uuid` VARCHAR(36) NOT NULL UNIQUE KEY * @return {@link TableCreateBuilder} */ - TableCreateBuilder addColumn(@NotNull String column); + @NotNull TableCreateBuilder addColumn(@NotNull String column); /** * 为该表添加一个列 @@ -68,7 +68,7 @@ public interface TableCreateBuilder extends SQLBuilder { *
    如 VARCHAR(36) NOT NULL UNIQUE KEY * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings) { + default @NotNull TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings) { Objects.requireNonNull(columnName, "columnName could not be null"); return addColumn(withBackQuote(columnName) + " " + settings); } @@ -82,7 +82,7 @@ public interface TableCreateBuilder extends SQLBuilder { * @param comments 列的注解,用于解释该列数据的作用 * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings, @NotNull String comments) { + default @NotNull TableCreateBuilder addColumn(@NotNull String columnName, @NotNull String settings, @NotNull String comments) { return addColumn(columnName, settings + " COMMENT " + withQuote(comments)); } @@ -97,8 +97,8 @@ public interface TableCreateBuilder extends SQLBuilder { * @param unsigned 是否采用 UNSIGNED (即无负数,可以增加自增键的最高数,建议为true) * @return {@link TableCreateBuilder} */ - TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, @Nullable NumberType numberType, - boolean asPrimaryKey, boolean unsigned); + @NotNull TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, @Nullable NumberType numberType, + boolean asPrimaryKey, boolean unsigned); /** * 为该表添加一个INT类型的自增主键列 @@ -110,8 +110,8 @@ public interface TableCreateBuilder extends SQLBuilder { * @param unsigned 是否采用 UNSIGNED (即无负数,可以增加自增键的最高数,建议为true) * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, - boolean asPrimaryKey, boolean unsigned) { + default @NotNull TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, + boolean asPrimaryKey, boolean unsigned) { return addAutoIncrementColumn(columnName, NumberType.INT, asPrimaryKey, unsigned); } @@ -125,7 +125,7 @@ public interface TableCreateBuilder extends SQLBuilder { * @param asPrimaryKey 是否为主键,若为false则设定为唯一键 * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, boolean asPrimaryKey) { + default @NotNull TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName, boolean asPrimaryKey) { return addAutoIncrementColumn(columnName, asPrimaryKey, true); } @@ -137,7 +137,7 @@ public interface TableCreateBuilder extends SQLBuilder { * @param columnName 列名 * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName) { + default @NotNull TableCreateBuilder addAutoIncrementColumn(@NotNull String columnName) { return addAutoIncrementColumn(columnName, true); } @@ -152,8 +152,8 @@ public interface TableCreateBuilder extends SQLBuilder { * @param columnName 索引包含的列 * @return {@link TableCreateBuilder} */ - default TableCreateBuilder setIndex(@NotNull String columnName, - @NotNull IndexType type) { + default @NotNull TableCreateBuilder setIndex(@NotNull String columnName, + @NotNull IndexType type) { return setIndex(type, null, columnName); } @@ -170,8 +170,8 @@ public interface TableCreateBuilder extends SQLBuilder { * @param moreColumns 联合索引需要包含的列 * @return {@link TableCreateBuilder} */ - TableCreateBuilder setIndex(@NotNull IndexType type, @Nullable String indexName, - @NotNull String columnName, @NotNull String... moreColumns); + @NotNull TableCreateBuilder setIndex(@NotNull IndexType type, @Nullable String indexName, + @NotNull String columnName, @NotNull String... moreColumns); /** @@ -185,7 +185,7 @@ public interface TableCreateBuilder extends SQLBuilder { * @param foreignColumn 外键关联表中对应的关联列,必须为目标表的主键,即 {@link IndexType#PRIMARY_KEY} * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addForeignKey(@NotNull String tableColumn, @NotNull String foreignColumn) { + default @NotNull TableCreateBuilder addForeignKey(@NotNull String tableColumn, @NotNull String foreignColumn) { return addForeignKey(tableColumn, getTableName(), foreignColumn); } @@ -203,8 +203,8 @@ public interface TableCreateBuilder extends SQLBuilder { *

    2. 数据类型必须和所要建立主键的列的数据类型相同。 * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addForeignKey(@NotNull String tableColumn, - @NotNull String foreignTable, @NotNull String foreignColumn) { + default @NotNull TableCreateBuilder addForeignKey(@NotNull String tableColumn, + @NotNull String foreignTable, @NotNull String foreignColumn) { return addForeignKey(tableColumn, null, foreignTable, foreignColumn); } @@ -223,8 +223,8 @@ public interface TableCreateBuilder extends SQLBuilder { *

    2. 数据类型必须和所要建立主键的列的数据类型相同。 * @return {@link TableCreateBuilder} */ - default TableCreateBuilder addForeignKey(@NotNull String tableColumn, @Nullable String constraintName, - @NotNull String foreignTable, @NotNull String foreignColumn) { + default @NotNull TableCreateBuilder addForeignKey(@NotNull String tableColumn, @Nullable String constraintName, + @NotNull String foreignTable, @NotNull String foreignColumn) { return addForeignKey(tableColumn, constraintName, foreignTable, foreignColumn, null, null); } @@ -245,9 +245,9 @@ public interface TableCreateBuilder extends SQLBuilder { * @param deleteRule 在外键被删除时采用的规则,缺省时默认为{@link ForeignKeyRule#RESTRICT} * @return {@link TableCreateBuilder} */ - TableCreateBuilder addForeignKey(@NotNull String tableColumn, @Nullable String constraintName, - @NotNull String foreignTable, @NotNull String foreignColumn, - @Nullable ForeignKeyRule updateRule, @Nullable ForeignKeyRule deleteRule); + @NotNull TableCreateBuilder addForeignKey(@NotNull String tableColumn, @Nullable String constraintName, + @NotNull String foreignTable, @NotNull String foreignColumn, + @Nullable ForeignKeyRule updateRule, @Nullable ForeignKeyRule deleteRule); default String defaultTablesSettings() { return "ENGINE=InnoDB DEFAULT CHARSET=utf8"; diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/TableQueryBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/TableQueryBuilder.java index 7541f6a..6fa64b8 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/TableQueryBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/TableQueryBuilder.java @@ -1,9 +1,10 @@ package cc.carm.lib.easysql.api.builder; -import cc.carm.lib.easysql.api.action.base.PreparedQueryAction; +import cc.carm.lib.easysql.api.action.query.PreparedSQLQueryAction; import org.jetbrains.annotations.NotNull; -public interface TableQueryBuilder extends ConditionalBuilder { +public interface TableQueryBuilder> + extends ConditionalBuilder, B> { @NotNull String getTableName(); @@ -13,7 +14,7 @@ public interface TableQueryBuilder extends ConditionalBuilder select(@NotNull String... columnNames); /** * 对结果进行排序 @@ -22,7 +23,7 @@ public interface TableQueryBuilder extends ConditionalBuilder orderBy(@NotNull String columnName, boolean asc); /** * 限制查询条数,用于分页查询。 @@ -32,6 +33,6 @@ public interface TableQueryBuilder extends ConditionalBuilder limit(int start, int end); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/UpdateBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/UpdateBuilder.java index 8540b25..48a907d 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/UpdateBuilder.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/builder/UpdateBuilder.java @@ -1,11 +1,13 @@ package cc.carm.lib.easysql.api.builder; +import cc.carm.lib.easysql.api.action.update.PreparedSQLUpdateAction; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.LinkedHashMap; -public interface UpdateBuilder extends ConditionalBuilder> { +public interface UpdateBuilder> + extends ConditionalBuilder, B> { String getTableName(); @@ -17,7 +19,7 @@ public interface UpdateBuilder extends ConditionalBuilder set(@NotNull String columnName, @Nullable Object columnValue); /** * 设定更新的全部字段值 (此操作会覆盖之前的设定) @@ -26,7 +28,7 @@ public interface UpdateBuilder extends ConditionalBuilder columnData); + UpdateBuilder setAll(LinkedHashMap<@NotNull String, @Nullable Object> columnData); /** * 设定更新的全部字段值 (此操作会覆盖之前的设定) @@ -36,7 +38,7 @@ public interface UpdateBuilder extends ConditionalBuilder setAll(@NotNull String[] columnNames, @Nullable Object[] columnValues); /** * 设定更新的全部字段值 (此操作会覆盖之前的设定) @@ -47,9 +49,8 @@ public interface UpdateBuilder extends ConditionalBuilder setAll(@NotNull String columnName, @Nullable Object columnValue) { return setAll(new String[]{columnName}, new Object[]{columnValue}); } - } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/builder/UpsertBuilder.java b/api/src/main/java/cc/carm/lib/easysql/api/builder/UpsertBuilder.java deleted file mode 100644 index 7759170..0000000 --- a/api/src/main/java/cc/carm/lib/easysql/api/builder/UpsertBuilder.java +++ /dev/null @@ -1,17 +0,0 @@ -package cc.carm.lib.easysql.api.builder; - -/** - * 存在则更新,不存在则插入。 - * - * @see ReplaceBuilder - */ -@Deprecated -public interface UpsertBuilder { - - String getTableName(); - - default UpsertBuilder setColumnNames(String[] columnNames, String updateColumn) { - throw new UnsupportedOperationException("Please use REPLACE ."); - } - -} diff --git a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java index 036a4be..2cdc09e 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLDebugHandler.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.api.function; import cc.carm.lib.easysql.api.SQLQuery; -import cc.carm.lib.easysql.api.action.SQLAction; +import cc.carm.lib.easysql.api.action.SQLBaseAction; import cc.carm.lib.easysql.api.action.base.PreparedBatchUpdateAction; import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; import org.jetbrains.annotations.NotNull; @@ -14,19 +14,19 @@ import java.util.concurrent.TimeUnit; /** * 异常处理器。 - *
    在使用 {@link SQLAction#execute(SQLExceptionHandler)} 等相关方法时, + *
    在使用 {@link SQLBaseAction#execute(SQLExceptionHandler)} 等相关方法时, * 如果发生异常,则会调用错误处理器进行错误内容的输出提示。 */ public interface SQLDebugHandler { /** - * 该方法将在 {@link SQLAction#execute()} 执行前调用。 + * 该方法将在 {@link SQLBaseAction#execute()} 执行前调用。 * - * @param action {@link SQLAction} 对象 + * @param action {@link SQLBaseAction} 对象 * @param params 执行传入的参数列表。 * 实际上,仅有 {@link PreparedUpdateAction} 和 {@link PreparedBatchUpdateAction} 才会有传入参数。 */ - void beforeExecute(@NotNull SQLAction action, @NotNull List<@Nullable Object[]> params); + void beforeExecute(@NotNull SQLBaseAction action, @NotNull List<@Nullable Object[]> params); /** * 该方法将在 {@link SQLQuery#close()} 执行后调用。 @@ -54,7 +54,7 @@ public interface SQLDebugHandler { return new SQLDebugHandler() { @Override - public void beforeExecute(@NotNull SQLAction action, @NotNull List<@Nullable Object[]> params) { + public void beforeExecute(@NotNull SQLBaseAction action, @NotNull List<@Nullable Object[]> params) { logger.info("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"); logger.info("┣# 操作编号: {}", action.getActionUUID()); logger.info("┣# 操作类型: {}", action.getClass().getSimpleName()); diff --git a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLExceptionHandler.java b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLExceptionHandler.java index fdd9d26..4445746 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLExceptionHandler.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLExceptionHandler.java @@ -1,6 +1,7 @@ package cc.carm.lib.easysql.api.function; -import cc.carm.lib.easysql.api.action.SQLAction; +import cc.carm.lib.easysql.api.action.SQLAdvancedAction; +import cc.carm.lib.easysql.api.action.SQLBaseAction; import org.slf4j.Logger; import java.sql.SQLException; @@ -8,11 +9,11 @@ import java.util.function.BiConsumer; /** * 异常处理器。 - *
    在使用 {@link SQLAction#execute(SQLExceptionHandler)} 等相关方法时, + *
    在使用 {@link SQLAdvancedAction#execute(SQLExceptionHandler)} 等相关方法时, * 如果发生异常,则会调用错误处理器进行错误内容的输出提示。 */ @FunctionalInterface -public interface SQLExceptionHandler extends BiConsumer> { +public interface SQLExceptionHandler extends BiConsumer> { /** * 默认的异常处理器,将详细的输出相关错误与错误来源。 diff --git a/api/src/main/java/cc/carm/lib/easysql/api/table/SQLTable.java b/api/src/main/java/cc/carm/lib/easysql/api/table/SQLTable.java index 95a1205..511f461 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/table/SQLTable.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/table/SQLTable.java @@ -1,8 +1,8 @@ package cc.carm.lib.easysql.api.table; import cc.carm.lib.easysql.api.SQLManager; -import cc.carm.lib.easysql.api.action.asyncable.AsyncablePreparedBatchUpdateAction; -import cc.carm.lib.easysql.api.action.asyncable.AsyncablePreparedUpdateAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLBatchUpdateAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLUpdateAction; import cc.carm.lib.easysql.api.builder.*; import cc.carm.lib.easysql.api.function.SQLHandler; import org.jetbrains.annotations.NotNull; @@ -100,40 +100,40 @@ public interface SQLTable { return sqlManager.updateInto(getTableName()); } - default @NotNull InsertBuilder> createInsert() { + default @NotNull InsertBuilder> createInsert() { return Optional.ofNullable(getSQLManager()).map(this::createInsert) .orElseThrow(() -> new NullPointerException("This table doesn't have a SQLManger.")); } - default @NotNull InsertBuilder> createInsert(@NotNull SQLManager sqlManager) { + default @NotNull InsertBuilder> createInsert(@NotNull SQLManager sqlManager) { return sqlManager.insertInto(getTableName()); } - default @NotNull InsertBuilder> createInsertBatch() { + default @NotNull InsertBuilder> createInsertBatch() { return Optional.ofNullable(getSQLManager()).map(this::createInsertBatch) .orElseThrow(() -> new NullPointerException("This table doesn't have a SQLManger.")); } - default @NotNull InsertBuilder> createInsertBatch(@NotNull SQLManager sqlManager) { + default @NotNull InsertBuilder> createInsertBatch(@NotNull SQLManager sqlManager) { return sqlManager.insertBatchInto(getTableName()); } - default @NotNull ReplaceBuilder> createReplace() { + default @NotNull ReplaceBuilder> createReplace() { return Optional.ofNullable(getSQLManager()).map(this::createReplace) .orElseThrow(() -> new NullPointerException("This table doesn't have a SQLManger.")); } - default @NotNull ReplaceBuilder> createReplace(@NotNull SQLManager sqlManager) { + default @NotNull ReplaceBuilder> createReplace(@NotNull SQLManager sqlManager) { return sqlManager.replaceInto(getTableName()); } - default @NotNull ReplaceBuilder> createReplaceBatch() { + default @NotNull ReplaceBuilder> createReplaceBatch() { return Optional.ofNullable(getSQLManager()).map(this::createReplaceBatch) .orElseThrow(() -> new NullPointerException("This table doesn't have a SQLManger.")); } - default @NotNull ReplaceBuilder> createReplaceBatch(@NotNull SQLManager sqlManager) { + default @NotNull ReplaceBuilder> createReplaceBatch(@NotNull SQLManager sqlManager) { return sqlManager.replaceBatchInto(getTableName()); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/transaction/SQLTransaction.java b/api/src/main/java/cc/carm/lib/easysql/api/transaction/SQLTransaction.java index 8f7e8a0..d6444ee 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/transaction/SQLTransaction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/transaction/SQLTransaction.java @@ -1,10 +1,12 @@ package cc.carm.lib.easysql.api.transaction; import cc.carm.lib.easysql.api.SQLManager; -import cc.carm.lib.easysql.api.action.base.PreparedBatchUpdateAction; -import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; -import cc.carm.lib.easysql.api.action.base.BatchUpdateAction; -import cc.carm.lib.easysql.api.action.base.UpdateAction; +import cc.carm.lib.easysql.api.action.query.PreparedSQLQueryAction; +import cc.carm.lib.easysql.api.action.query.SQLQueryAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLBatchUpdateAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLUpdateAction; +import cc.carm.lib.easysql.api.action.update.SQLBatchUpdateAction; +import cc.carm.lib.easysql.api.action.update.SQLUpdateAction; import cc.carm.lib.easysql.api.builder.*; import cc.carm.lib.easysql.api.enums.IsolationLevel; import org.jetbrains.annotations.NotNull; @@ -56,7 +58,7 @@ public interface SQLTransaction extends AutoCloseable { * * @param sql SQL语句内容 * @return 更新的行数 - * @see UpdateAction + * @see SQLUpdateAction */ @Nullable Integer executeSQL(String sql); @@ -66,7 +68,7 @@ public interface SQLTransaction extends AutoCloseable { * @param sql SQL语句内容 * @param params SQL语句中 ? 的对应参数 * @return 更新的行数 - * @see PreparedUpdateAction + * @see PreparedSQLUpdateAction */ @Nullable Integer executeSQL(String sql, Object[] params); @@ -76,7 +78,7 @@ public interface SQLTransaction extends AutoCloseable { * @param sql SQL语句内容 * @param paramsBatch SQL语句中对应?的参数组 * @return 对应参数返回的行数 - * @see PreparedBatchUpdateAction + * @see PreparedSQLBatchUpdateAction */ @Nullable List executeSQLBatch(String sql, Iterable paramsBatch); @@ -87,7 +89,7 @@ public interface SQLTransaction extends AutoCloseable { * @param sql SQL语句内容 * @param moreSQL 更多SQL语句内容 * @return 对应参数返回的行数 - * @see BatchUpdateAction + * @see SQLBatchUpdateAction */ @Nullable List executeSQLBatch(@NotNull String sql, String... moreSQL); @@ -104,7 +106,7 @@ public interface SQLTransaction extends AutoCloseable { * * @return {@link QueryBuilder} */ - @NotNull QueryBuilder createQuery(); + @NotNull QueryBuilder createQuery(); /** * 创建一条插入操作。 @@ -112,7 +114,7 @@ public interface SQLTransaction extends AutoCloseable { * @param tableName 目标表名 * @return {@link InsertBuilder} */ - @NotNull InsertBuilder> insertInto(@NotNull String tableName); + @NotNull InsertBuilder> insertInto(@NotNull String tableName); /** * 创建支持多组数据的插入操作。 @@ -120,7 +122,7 @@ public interface SQLTransaction extends AutoCloseable { * @param tableName 目标表名 * @return {@link InsertBuilder} */ - @NotNull InsertBuilder> insertBatchInto(@NotNull String tableName); + @NotNull InsertBuilder> insertBatchInto(@NotNull String tableName); /** * 创建一条替换操作。 @@ -128,7 +130,7 @@ public interface SQLTransaction extends AutoCloseable { * @param tableName 目标表名 * @return {@link ReplaceBuilder} */ - @NotNull ReplaceBuilder> replaceInto(@NotNull String tableName); + @NotNull ReplaceBuilder> replaceInto(@NotNull String tableName); /** * 创建支持多组数据的替换操作。 @@ -136,7 +138,7 @@ public interface SQLTransaction extends AutoCloseable { * @param tableName 目标表名 * @return {@link ReplaceBuilder} */ - @NotNull ReplaceBuilder> replaceBatchInto(@NotNull String tableName); + @NotNull ReplaceBuilder> replaceBatchInto(@NotNull String tableName); /** * 创建更新操作。 @@ -144,7 +146,7 @@ public interface SQLTransaction extends AutoCloseable { * @param tableName 目标表名 * @return {@link UpdateBuilder} */ - @NotNull UpdateBuilder updateInto(@NotNull String tableName); + @NotNull UpdateBuilder> updateInto(@NotNull String tableName); /** * 创建删除操作。 @@ -152,6 +154,6 @@ public interface SQLTransaction extends AutoCloseable { * @param tableName 目标表名 * @return {@link DeleteBuilder} */ - @NotNull DeleteBuilder deleteFrom(@NotNull String tableName); + @NotNull DeleteBuilder> deleteFrom(@NotNull String tableName); } diff --git a/api/src/main/java/cc/carm/lib/easysql/api/transaction/TransactionAction.java b/api/src/main/java/cc/carm/lib/easysql/api/transaction/TransactionAction.java index fce3e93..e2bf489 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/transaction/TransactionAction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/transaction/TransactionAction.java @@ -1,10 +1,10 @@ package cc.carm.lib.easysql.api.transaction; import cc.carm.lib.easysql.api.SQLSource; -import cc.carm.lib.easysql.api.action.SQLAction; +import cc.carm.lib.easysql.api.action.SQLBaseAction; import org.jetbrains.annotations.NotNull; -public interface TransactionAction extends SQLAction { +public interface TransactionAction extends SQLBaseAction { @NotNull SQLTransaction getTransaction(); diff --git a/demo/src/main/java/EasySQLDemo.java b/demo/src/main/java/EasySQLDemo.java index 69fb176..31c89aa 100644 --- a/demo/src/main/java/EasySQLDemo.java +++ b/demo/src/main/java/EasySQLDemo.java @@ -1,3 +1,4 @@ +import cc.carm.lib.easysql.api.SQLManager; import cc.carm.lib.easysql.api.SQLQuery; import cc.carm.lib.easysql.api.table.SQLTable; import cc.carm.lib.easysql.api.enums.ForeignKeyRule; diff --git a/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java b/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java index f163ff8..15b053f 100644 --- a/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java +++ b/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java @@ -1,6 +1,5 @@ package cc.carm.lib.easysql; -import cc.carm.lib.easysql.manager.SQLManagerImpl; import cc.carm.lib.easysql.tests.*; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; diff --git a/demo/src/test/java/cc/carm/lib/easysql/TransactionTest.java b/demo/src/test/java/cc/carm/lib/easysql/TransactionTest.java index 0b4e2cf..23affb0 100644 --- a/demo/src/test/java/cc/carm/lib/easysql/TransactionTest.java +++ b/demo/src/test/java/cc/carm/lib/easysql/TransactionTest.java @@ -1,15 +1,20 @@ package cc.carm.lib.easysql; +import cc.carm.lib.easysql.api.SQLManager; +import cc.carm.lib.easysql.api.enums.IsolationLevel; import cc.carm.lib.easysql.api.transaction.SQLSavepoint; import cc.carm.lib.easysql.api.transaction.SQLTransaction; public class TransactionTest { + @SuppressWarnings("ConstantConditions") public void demo() { + SQLManager sqlManager = null; - try (SQLTransaction transaction = createTransaction()) { + + try (SQLTransaction transaction = sqlManager.createTransaction(IsolationLevel.REPEATED_READ)) { transaction.updateInto("A") .set("name", "CARM") @@ -40,8 +45,4 @@ public class TransactionTest { } - protected SQLTransaction createTransaction() { - return null; - } - } diff --git a/impl/src/main/java/cc/carm/lib/easysql/manager/SQLManagerImpl.java b/impl/src/main/java/cc/carm/lib/easysql/SQLManagerImpl.java similarity index 62% rename from impl/src/main/java/cc/carm/lib/easysql/manager/SQLManagerImpl.java rename to impl/src/main/java/cc/carm/lib/easysql/SQLManagerImpl.java index c4c1a98..469aa54 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/manager/SQLManagerImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/SQLManagerImpl.java @@ -1,120 +1,61 @@ -package cc.carm.lib.easysql.manager; +package cc.carm.lib.easysql; -import cc.carm.lib.easysql.action.PreparedBatchUpdateActionImpl; -import cc.carm.lib.easysql.action.PreparedUpdateActionImpl; +import cc.carm.lib.easysql.action.PreparedSQLBatchUpdateActionImpl; +import cc.carm.lib.easysql.action.PreparedSQLUpdateActionImpl; +import cc.carm.lib.easysql.action.SQLBatchUpdateActionImpl; import cc.carm.lib.easysql.action.UpdateActionImpl; -import cc.carm.lib.easysql.action.BatchUpdateActionImpl; -import cc.carm.lib.easysql.api.SQLQuery; -import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; -import cc.carm.lib.easysql.api.action.base.PreparedBatchUpdateAction; +import cc.carm.lib.easysql.api.SQLManager; import cc.carm.lib.easysql.api.action.base.BatchUpdateAction; +import cc.carm.lib.easysql.api.action.base.PreparedBatchUpdateAction; +import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLBatchUpdateAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLUpdateAction; import cc.carm.lib.easysql.api.builder.*; +import cc.carm.lib.easysql.api.enums.IsolationLevel; import cc.carm.lib.easysql.api.function.SQLBiFunction; import cc.carm.lib.easysql.api.function.SQLDebugHandler; import cc.carm.lib.easysql.api.function.SQLExceptionHandler; import cc.carm.lib.easysql.api.function.SQLFunction; +import cc.carm.lib.easysql.api.transaction.SQLTransaction; import cc.carm.lib.easysql.builder.impl.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.sql.DataSource; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.function.Supplier; -public class SQLManagerImpl implements SQLManager { - - private final Logger LOGGER; - private final DataSource dataSource; - private final ConcurrentHashMap activeQuery = new ConcurrentHashMap<>(); - protected ExecutorService executorPool; - @NotNull Supplier debugMode = () -> Boolean.FALSE; - - @NotNull SQLExceptionHandler exceptionHandler; - @NotNull SQLDebugHandler debugHandler; +public class SQLManagerImpl extends SQLSourceImpl implements SQLManager { public SQLManagerImpl(@NotNull DataSource dataSource) { - this(dataSource, null); + super(dataSource); } public SQLManagerImpl(@NotNull DataSource dataSource, @Nullable String name) { - this(dataSource, LoggerFactory.getLogger(SQLManagerImpl.class), name); + super(dataSource, name); + } + + public SQLManagerImpl(@NotNull DataSource dataSource, @NotNull Logger logger) { + super(dataSource, logger); } public SQLManagerImpl(@NotNull DataSource dataSource, @NotNull Logger logger, @Nullable String name) { - String managerName = "SQLManager" + (name != null ? "#" + name : ""); - this.LOGGER = logger; - this.dataSource = dataSource; - this.executorPool = SQLManager.defaultExecutorPool(managerName); - this.exceptionHandler = SQLExceptionHandler.detailed(getLogger()); - this.debugHandler = SQLDebugHandler.defaultHandler(getLogger()); + super(dataSource, logger, name); } - @Override - public boolean isDebugMode() { - return this.debugMode.get(); - } - - @Override - public void setDebugMode(@NotNull Supplier<@NotNull Boolean> debugMode) { - this.debugMode = debugMode; - } - - @Override - public @NotNull SQLDebugHandler getDebugHandler() { - return this.debugHandler; - } - - @Override - public void setDebugHandler(@NotNull SQLDebugHandler debugHandler) { - this.debugHandler = debugHandler; - } - - @Override - public Logger getLogger() { - return LOGGER; - } - - public @NotNull ExecutorService getExecutorPool() { - return executorPool; - } - - public void setExecutorPool(@NotNull ExecutorService executorPool) { - this.executorPool = executorPool; - } - - @Override - public @NotNull DataSource getDataSource() { - return this.dataSource; - } - - @Override - public @NotNull Connection getConnection() throws SQLException { - return getDataSource().getConnection(); - } - - @Override - public @NotNull Map getActiveQuery() { - return this.activeQuery; - } - - @Override - public @NotNull SQLExceptionHandler getExceptionHandler() { - return this.exceptionHandler; - } - - @Override - public void setExceptionHandler(@Nullable SQLExceptionHandler handler) { - if (handler == null) this.exceptionHandler = SQLExceptionHandler.detailed(getLogger()); - else this.exceptionHandler = handler; + public SQLManagerImpl(@NotNull DataSource dataSource, @NotNull Logger logger, @NotNull ExecutorService executorPool, + @NotNull Supplier debugMode, @NotNull SQLDebugHandler debugHandler, + @NotNull SQLExceptionHandler exceptionHandler) { + super(dataSource, logger, executorPool, debugMode, debugHandler, exceptionHandler); } @Override @@ -124,17 +65,17 @@ public class SQLManagerImpl implements SQLManager { @Override public Integer executeSQL(String sql, Object[] params) { - return new PreparedUpdateActionImpl<>(this, Integer.class, sql, params).execute(null); + return new PreparedSQLUpdateActionImpl<>(this, Integer.class, sql, params).execute(null); } @Override public List executeSQLBatch(String sql, Iterable paramsBatch) { - return new PreparedBatchUpdateActionImpl<>(this, Integer.class, sql).allValues(paramsBatch).execute(null); + return new PreparedSQLBatchUpdateActionImpl<>(this, Integer.class, sql).allValues(paramsBatch).execute(null); } @Override public List executeSQLBatch(@NotNull String sql, String... moreSQL) { - BatchUpdateAction action = new BatchUpdateActionImpl(this, sql); + BatchUpdateAction action = new SQLBatchUpdateActionImpl(this, sql); if (moreSQL != null && moreSQL.length > 0) { Arrays.stream(moreSQL).forEach(action::addBatch); } @@ -146,7 +87,7 @@ public class SQLManagerImpl implements SQLManager { Iterator iterator = sqlBatch.iterator(); if (!iterator.hasNext()) return null; // PLEASE GIVE IT SOMETHING - BatchUpdateAction action = new BatchUpdateActionImpl(this, iterator.next()); + BatchUpdateAction action = new SQLBatchUpdateActionImpl(this, iterator.next()); while (iterator.hasNext()) { action.addBatch(iterator.next()); } @@ -154,6 +95,11 @@ public class SQLManagerImpl implements SQLManager { return action.execute(null); } + @Override + public @NotNull SQLTransaction createTransaction(@Nullable IsolationLevel level) { + return null; + } + @Override public CompletableFuture fetchMetadata(@NotNull SQLBiFunction reader) { return CompletableFuture.supplyAsync(() -> { @@ -203,7 +149,7 @@ public class SQLManagerImpl implements SQLManager { return new InsertBuilderImpl>(this, tableName) { @Override public PreparedBatchUpdateAction columns(List columnNames) { - return new PreparedBatchUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); + return new PreparedSQLBatchUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); } }; } @@ -213,17 +159,42 @@ public class SQLManagerImpl implements SQLManager { return new InsertBuilderImpl>(this, tableName) { @Override public PreparedUpdateAction columns(List columnNames) { - return new PreparedUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); + return new PreparedSQLUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); } }; } + @Override + public @NotNull InsertBuilder> insertBatchInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull ReplaceBuilder> replaceInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull ReplaceBuilder> replaceBatchInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull UpdateBuilder> updateInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull DeleteBuilder> deleteFrom(@NotNull String tableName) { + return null; + } + @Override public ReplaceBuilder> createReplaceBatch(@NotNull String tableName) { return new ReplaceBuilderImpl>(this, tableName) { @Override public PreparedBatchUpdateAction columns(List columnNames) { - return new PreparedBatchUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); + return new PreparedSQLBatchUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); } }; } @@ -233,7 +204,7 @@ public class SQLManagerImpl implements SQLManager { return new ReplaceBuilderImpl>(this, tableName) { @Override public PreparedUpdateAction columns(List columnNames) { - return new PreparedUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); + return new PreparedSQLUpdateActionImpl<>(getManager(), Integer.class, buildSQL(getTableName(), columnNames)); } }; } diff --git a/impl/src/main/java/cc/carm/lib/easysql/SQLSourceImpl.java b/impl/src/main/java/cc/carm/lib/easysql/SQLSourceImpl.java new file mode 100644 index 0000000..70d7b32 --- /dev/null +++ b/impl/src/main/java/cc/carm/lib/easysql/SQLSourceImpl.java @@ -0,0 +1,126 @@ +package cc.carm.lib.easysql; + +import cc.carm.lib.easysql.api.SQLQuery; +import cc.carm.lib.easysql.api.SQLSource; +import cc.carm.lib.easysql.api.function.SQLDebugHandler; +import cc.carm.lib.easysql.api.function.SQLExceptionHandler; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.function.Supplier; + +public class SQLSourceImpl implements SQLSource { + + protected final @NotNull Logger logger; + + protected final @NotNull DataSource dataSource; + protected @NotNull ExecutorService executorPool; + + protected @NotNull Supplier debugMode = () -> Boolean.FALSE; + protected @NotNull SQLDebugHandler debugHandler; + protected @NotNull SQLExceptionHandler exceptionHandler; + + protected final ConcurrentHashMap activeQueries = new ConcurrentHashMap<>(); + + public SQLSourceImpl(@NotNull DataSource dataSource) { + this(dataSource, (String) null); + } + + public SQLSourceImpl(@NotNull DataSource dataSource, @Nullable String name) { + this(dataSource, LoggerFactory.getLogger(SQLManagerImpl.class), name); + } + + public SQLSourceImpl(@NotNull DataSource dataSource, @NotNull Logger logger) { + this(dataSource, logger, null); + } + + public SQLSourceImpl(@NotNull DataSource dataSource, @NotNull Logger logger, @Nullable String name) { + this( + dataSource, logger, + SQLSource.defaultExecutorPool("SQLSource" + (name != null ? "#" + name : "")), + () -> false, SQLDebugHandler.defaultHandler(logger), SQLExceptionHandler.detailed(logger) + ); + } + + public SQLSourceImpl(@NotNull DataSource dataSource, @NotNull Logger logger, @NotNull ExecutorService executorPool, + @NotNull Supplier debugMode, @NotNull SQLDebugHandler debugHandler, + @NotNull SQLExceptionHandler exceptionHandler) { + this.logger = logger; + this.dataSource = dataSource; + this.executorPool = executorPool; + this.exceptionHandler = exceptionHandler; + this.debugMode = debugMode; + this.debugHandler = debugHandler; + } + + @Override + public @NotNull Map getActiveQueries() { + return this.activeQueries; + } + + @Override + public @NotNull DataSource getDataSource() { + return this.dataSource; + } + + @Override + public @NotNull Connection getConnection() throws SQLException { + return getDataSource().getConnection(); + } + + @Override + public @NotNull Logger getLogger() { + return this.logger; + } + + @Override + public @NotNull ExecutorService getExecutorPool() { + return this.executorPool; + } + + @Override + public void setExecutorPool(@NotNull ExecutorService executorPool) { + this.executorPool = executorPool; + } + + @Override + public boolean isDebugMode() { + return this.debugMode.get(); + } + + @Override + public void setDebugMode(@NotNull Supplier<@NotNull Boolean> debugMode) { + this.debugMode = debugMode; + } + + @Override + public @NotNull SQLDebugHandler getDebugHandler() { + return this.debugHandler; + } + + @Override + public void setDebugHandler(@NotNull SQLDebugHandler debugHandler) { + this.debugHandler = debugHandler; + } + + @Override + public @NotNull SQLExceptionHandler getExceptionHandler() { + return this.exceptionHandler; + } + + @Override + public void setExceptionHandler(@Nullable SQLExceptionHandler handler) { + if (handler == null) this.exceptionHandler = SQLExceptionHandler.detailed(getLogger()); + else this.exceptionHandler = handler; + } + +} diff --git a/impl/src/main/java/cc/carm/lib/easysql/SQLTransactionImpl.java b/impl/src/main/java/cc/carm/lib/easysql/SQLTransactionImpl.java new file mode 100644 index 0000000..8c5b732 --- /dev/null +++ b/impl/src/main/java/cc/carm/lib/easysql/SQLTransactionImpl.java @@ -0,0 +1,108 @@ +package cc.carm.lib.easysql; + +import cc.carm.lib.easysql.api.SQLManager; +import cc.carm.lib.easysql.api.action.query.PreparedSQLQueryAction; +import cc.carm.lib.easysql.api.action.query.SQLQueryAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLBatchUpdateAction; +import cc.carm.lib.easysql.api.action.update.PreparedSQLUpdateAction; +import cc.carm.lib.easysql.api.builder.*; +import cc.carm.lib.easysql.api.enums.IsolationLevel; +import cc.carm.lib.easysql.api.transaction.SQLSavepoint; +import cc.carm.lib.easysql.api.transaction.SQLTransaction; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class SQLTransactionImpl implements SQLTransaction { + @Override + public @NotNull SQLManager getManager() { + return null; + } + + @Override + public @NotNull IsolationLevel getIsolationLevel() { + return null; + } + + @Override + public void commit() { + + } + + @Override + public @NotNull SQLSavepoint savepoint(@NotNull String name) { + return null; + } + + @Override + public void rollback(@Nullable SQLSavepoint savepoint) { + + } + + @Override + public @Nullable Integer executeSQL(String sql) { + return null; + } + + @Override + public @Nullable Integer executeSQL(String sql, Object[] params) { + return null; + } + + @Override + public @Nullable List executeSQLBatch(String sql, Iterable paramsBatch) { + return null; + } + + @Override + public @Nullable List executeSQLBatch(@NotNull String sql, String... moreSQL) { + return null; + } + + @Override + public @Nullable List executeSQLBatch(@NotNull Iterable sqlBatch) { + return null; + } + + @Override + public @NotNull QueryBuilder createQuery() { + return null; + } + + @Override + public @NotNull InsertBuilder> insertInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull InsertBuilder> insertBatchInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull ReplaceBuilder> replaceInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull ReplaceBuilder> replaceBatchInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull UpdateBuilder> updateInto(@NotNull String tableName) { + return null; + } + + @Override + public @NotNull DeleteBuilder> deleteFrom(@NotNull String tableName) { + return null; + } + + @Override + public void close() throws Exception { + + } + +} diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java b/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java index 7f48022..ce63b43 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/AbstractSQLAction.java @@ -3,7 +3,7 @@ package cc.carm.lib.easysql.action; import cc.carm.lib.easysql.api.function.SQLExceptionHandler; import cc.carm.lib.easysql.api.function.SQLFunction; import cc.carm.lib.easysql.api.function.SQLHandler; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.sql.SQLException; diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/PreparedBatchUpdateActionImpl.java b/impl/src/main/java/cc/carm/lib/easysql/action/PreparedSQLBatchUpdateActionImpl.java similarity index 71% rename from impl/src/main/java/cc/carm/lib/easysql/action/PreparedBatchUpdateActionImpl.java rename to impl/src/main/java/cc/carm/lib/easysql/action/PreparedSQLBatchUpdateActionImpl.java index 639384d..c99d6b2 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/PreparedBatchUpdateActionImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/PreparedSQLBatchUpdateActionImpl.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.action; import cc.carm.lib.easysql.api.action.base.PreparedBatchUpdateAction; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import cc.carm.lib.easysql.util.StatementUtil; import org.jetbrains.annotations.NotNull; @@ -15,7 +15,7 @@ import java.util.List; import java.util.UUID; import java.util.stream.Collectors; -public class PreparedBatchUpdateActionImpl +public class PreparedSQLBatchUpdateActionImpl extends AbstractSQLAction> implements PreparedBatchUpdateAction { @@ -24,21 +24,21 @@ public class PreparedBatchUpdateActionImpl protected final @NotNull Class numberClass; - public PreparedBatchUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, - @NotNull String sql) { + public PreparedSQLBatchUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, + @NotNull String sql) { super(manager, sql); this.numberClass = numberClass; this.allParams = new ArrayList<>(); } - public PreparedBatchUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, - @NotNull UUID uuid, @NotNull String sql) { + public PreparedSQLBatchUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, + @NotNull UUID uuid, @NotNull String sql) { super(manager, sql, uuid); this.numberClass = numberClass; } @Override - public PreparedBatchUpdateActionImpl allValues(Iterable allValues) { + public PreparedSQLBatchUpdateActionImpl allValues(Iterable allValues) { List paramsList = new ArrayList<>(); allValues.forEach(paramsList::add); this.allParams = paramsList; @@ -46,20 +46,20 @@ public class PreparedBatchUpdateActionImpl } @Override - public PreparedBatchUpdateActionImpl values(Object... values) { + public PreparedSQLBatchUpdateActionImpl addValues(Object... values) { this.allParams.add(values); return this; } @Override - public PreparedBatchUpdateActionImpl returnGeneratedKeys() { + public PreparedSQLBatchUpdateActionImpl returnGeneratedKeys() { this.returnKeys = true; return this; } @Override - public PreparedBatchUpdateActionImpl returnGeneratedKeys(Class keyTypeClass) { - return new PreparedBatchUpdateActionImpl<>(getManager(), keyTypeClass, getActionUUID(), getSQLContent()) + public PreparedSQLBatchUpdateActionImpl returnGeneratedKeys(Class keyTypeClass) { + return new PreparedSQLBatchUpdateActionImpl<>(getManager(), keyTypeClass, getActionUUID(), getSQLContent()) .allValues(allParams).returnGeneratedKeys(); } diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/PreparedUpdateActionImpl.java b/impl/src/main/java/cc/carm/lib/easysql/action/PreparedSQLUpdateActionImpl.java similarity index 65% rename from impl/src/main/java/cc/carm/lib/easysql/action/PreparedUpdateActionImpl.java rename to impl/src/main/java/cc/carm/lib/easysql/action/PreparedSQLUpdateActionImpl.java index 6bb459c..f2374c0 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/PreparedUpdateActionImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/PreparedSQLUpdateActionImpl.java @@ -2,7 +2,7 @@ package cc.carm.lib.easysql.action; import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; import cc.carm.lib.easysql.api.action.base.UpdateAction; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import cc.carm.lib.easysql.util.StatementUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -16,43 +16,43 @@ import java.util.Collections; import java.util.List; import java.util.UUID; -public class PreparedUpdateActionImpl +public class PreparedSQLUpdateActionImpl extends UpdateActionImpl implements PreparedUpdateAction { Object[] params; - public PreparedUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, - @NotNull String sql) { + public PreparedSQLUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, + @NotNull String sql) { this(manager, numberClass, sql, (Object[]) null); } - public PreparedUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, - @NotNull String sql, @Nullable List params) { + public PreparedSQLUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, + @NotNull String sql, @Nullable List params) { this(manager, numberClass, sql, params == null ? null : params.toArray()); } - public PreparedUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, - @NotNull String sql, @Nullable Object[] params) { + public PreparedSQLUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, + @NotNull String sql, @Nullable Object[] params) { super(manager, numberClass, sql); this.params = params; } - public PreparedUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, - @NotNull UUID uuid, @NotNull String sql, - Object[] params) { + public PreparedSQLUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull Class numberClass, + @NotNull UUID uuid, @NotNull String sql, + Object[] params) { super(manager, numberClass, uuid, sql); this.params = params; } @Override - public PreparedUpdateActionImpl values(Object... params) { + public PreparedSQLUpdateActionImpl values(Object... params) { this.params = params; return this; } @Override - public PreparedUpdateActionImpl values(@Nullable Iterable params) { + public PreparedSQLUpdateActionImpl values(@Nullable Iterable params) { if (params == null) { return values((Object[]) null); } else { @@ -87,7 +87,7 @@ public class PreparedUpdateActionImpl @Override public UpdateAction returnGeneratedKey(Class keyTypeClass) { - PreparedUpdateActionImpl newAction = new PreparedUpdateActionImpl<>(getManager(), keyTypeClass, getActionUUID(), getSQLContent(), params); + PreparedSQLUpdateActionImpl newAction = new PreparedSQLUpdateActionImpl<>(getManager(), keyTypeClass, getActionUUID(), getSQLContent(), params); newAction.returnGeneratedKey(); return newAction; } diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/BatchUpdateActionImpl.java b/impl/src/main/java/cc/carm/lib/easysql/action/SQLBatchUpdateActionImpl.java similarity index 89% rename from impl/src/main/java/cc/carm/lib/easysql/action/BatchUpdateActionImpl.java rename to impl/src/main/java/cc/carm/lib/easysql/action/SQLBatchUpdateActionImpl.java index a26adac..14d68b4 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/BatchUpdateActionImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/SQLBatchUpdateActionImpl.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.action; import cc.carm.lib.easysql.api.action.base.BatchUpdateAction; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.sql.Connection; @@ -13,13 +13,13 @@ import java.util.List; import java.util.Objects; import java.util.stream.Collectors; -public class BatchUpdateActionImpl +public class SQLBatchUpdateActionImpl extends AbstractSQLAction> implements BatchUpdateAction { protected final List sqlContents = new ArrayList<>(); - public BatchUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull String sql) { + public SQLBatchUpdateActionImpl(@NotNull SQLManagerImpl manager, @NotNull String sql) { super(manager, sql); this.sqlContents.add(sql); } diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/UpdateActionImpl.java b/impl/src/main/java/cc/carm/lib/easysql/action/UpdateActionImpl.java index 28c277e..a3c67a6 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/UpdateActionImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/UpdateActionImpl.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.action; import cc.carm.lib.easysql.api.action.base.UpdateAction; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.sql.Connection; diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/query/PreparedQueryActionImpl.java b/impl/src/main/java/cc/carm/lib/easysql/action/query/PreparedSQLQueryActionImpl.java similarity index 78% rename from impl/src/main/java/cc/carm/lib/easysql/action/query/PreparedQueryActionImpl.java rename to impl/src/main/java/cc/carm/lib/easysql/action/query/PreparedSQLQueryActionImpl.java index 3b5680b..9adacb0 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/query/PreparedQueryActionImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/query/PreparedSQLQueryActionImpl.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.action.query; import cc.carm.lib.easysql.api.action.base.PreparedQueryAction; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import cc.carm.lib.easysql.query.SQLQueryImpl; import cc.carm.lib.easysql.util.StatementUtil; import org.jetbrains.annotations.NotNull; @@ -15,23 +15,23 @@ import java.util.Collections; import java.util.List; import java.util.function.Consumer; -public class PreparedQueryActionImpl extends QueryActionImpl implements PreparedQueryAction { +public class PreparedSQLQueryActionImpl extends SQLQueryActionImpl implements PreparedQueryAction { Consumer handler; Object[] params; - public PreparedQueryActionImpl(@NotNull SQLManagerImpl manager, @NotNull String sql) { + public PreparedSQLQueryActionImpl(@NotNull SQLManagerImpl manager, @NotNull String sql) { super(manager, sql); } @Override - public PreparedQueryActionImpl setParams(@Nullable Object... params) { + public @NotNull PreparedSQLQueryActionImpl setParams(@Nullable Object... params) { this.params = params; return this; } @Override - public PreparedQueryActionImpl setParams(@Nullable Iterable params) { + public PreparedSQLQueryActionImpl setParams(@Nullable Iterable params) { if (params == null) { return setParams((Object[]) null); } else { @@ -42,7 +42,7 @@ public class PreparedQueryActionImpl extends QueryActionImpl implements Prepared } @Override - public PreparedQueryActionImpl handleStatement(@Nullable Consumer statement) { + public PreparedSQLQueryActionImpl handleStatement(@Nullable Consumer statement) { this.handler = statement; return this; } @@ -72,7 +72,7 @@ public class PreparedQueryActionImpl extends QueryActionImpl implements Prepared connection, preparedStatement, preparedStatement.executeQuery() ); - getManager().getActiveQuery().put(getActionUUID(), query); + getManager().getActiveQueries().put(getActionUUID(), query); return query; } catch (SQLException exception) { preparedStatement.close(); diff --git a/impl/src/main/java/cc/carm/lib/easysql/action/query/QueryActionImpl.java b/impl/src/main/java/cc/carm/lib/easysql/action/query/SQLQueryActionImpl.java similarity index 81% rename from impl/src/main/java/cc/carm/lib/easysql/action/query/QueryActionImpl.java rename to impl/src/main/java/cc/carm/lib/easysql/action/query/SQLQueryActionImpl.java index 87731cf..0e85942 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/action/query/QueryActionImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/action/query/SQLQueryActionImpl.java @@ -2,10 +2,10 @@ package cc.carm.lib.easysql.action.query; import cc.carm.lib.easysql.action.AbstractSQLAction; import cc.carm.lib.easysql.api.SQLQuery; -import cc.carm.lib.easysql.api.action.base.QueryAction; +import cc.carm.lib.easysql.api.action.query.SQLQueryAction; import cc.carm.lib.easysql.api.function.SQLExceptionHandler; import cc.carm.lib.easysql.api.function.SQLHandler; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import cc.carm.lib.easysql.query.SQLQueryImpl; import org.jetbrains.annotations.NotNull; @@ -14,9 +14,9 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; -public class QueryActionImpl extends AbstractSQLAction implements QueryAction { +public class SQLQueryActionImpl extends AbstractSQLAction implements SQLQueryAction { - public QueryActionImpl(@NotNull SQLManagerImpl manager, @NotNull String sql) { + public SQLQueryActionImpl(@NotNull SQLManagerImpl manager, @NotNull String sql) { super(manager, sql); } @@ -40,7 +40,7 @@ public class QueryActionImpl extends AbstractSQLAction implements Quer connection, statement, statement.executeQuery(getSQLContent()) ); - getManager().getActiveQuery().put(getActionUUID(), query); + getManager().getActiveQueries().put(getActionUUID(), query); return query; } catch (SQLException exception) { diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/AbstractSQLBuilder.java b/impl/src/main/java/cc/carm/lib/easysql/builder/AbstractSQLBuilder.java index ee7e3c1..af87336 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/AbstractSQLBuilder.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/AbstractSQLBuilder.java @@ -1,7 +1,7 @@ package cc.carm.lib.easysql.builder; +import cc.carm.lib.easysql.SQLManagerImpl; import cc.carm.lib.easysql.api.SQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -20,4 +20,5 @@ public abstract class AbstractSQLBuilder implements SQLBuilder { public @NotNull SQLManagerImpl getManager() { return this.sqlManager; } + } diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/AbstractConditionalBuilder.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/AbstractConditionalBuilder.java index 7accfee..3b2a0b6 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/AbstractConditionalBuilder.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/AbstractConditionalBuilder.java @@ -2,7 +2,7 @@ package cc.carm.lib.easysql.builder.impl; import cc.carm.lib.easysql.api.builder.ConditionalBuilder; import cc.carm.lib.easysql.builder.AbstractSQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/DeleteBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/DeleteBuilderImpl.java index 07719b6..d43aaaa 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/DeleteBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/DeleteBuilderImpl.java @@ -1,9 +1,9 @@ package cc.carm.lib.easysql.builder.impl; -import cc.carm.lib.easysql.action.PreparedUpdateActionImpl; +import cc.carm.lib.easysql.action.PreparedSQLUpdateActionImpl; import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; import cc.carm.lib.easysql.api.builder.DeleteBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -32,7 +32,7 @@ public class DeleteBuilderImpl if (hasConditions()) sqlBuilder.append(" ").append(buildConditionSQL()); if (limit > 0) sqlBuilder.append(" ").append(buildLimitSQL()); - return new PreparedUpdateActionImpl<>( + return new PreparedSQLUpdateActionImpl<>( getManager(), Integer.class, sqlBuilder.toString(), (hasConditionParams() ? getConditionParams() : null) ); diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/InsertBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/InsertBuilderImpl.java index 8f8ff70..bc53377 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/InsertBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/InsertBuilderImpl.java @@ -2,7 +2,7 @@ package cc.carm.lib.easysql.builder.impl; import cc.carm.lib.easysql.api.builder.InsertBuilder; import cc.carm.lib.easysql.builder.AbstractSQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.util.Iterator; diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/QueryBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/QueryBuilderImpl.java index e4c0aec..d521717 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/QueryBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/QueryBuilderImpl.java @@ -1,13 +1,13 @@ package cc.carm.lib.easysql.builder.impl; -import cc.carm.lib.easysql.action.query.PreparedQueryActionImpl; -import cc.carm.lib.easysql.action.query.QueryActionImpl; +import cc.carm.lib.easysql.action.query.PreparedSQLQueryActionImpl; +import cc.carm.lib.easysql.action.query.SQLQueryActionImpl; import cc.carm.lib.easysql.api.action.base.PreparedQueryAction; import cc.carm.lib.easysql.api.action.base.QueryAction; import cc.carm.lib.easysql.api.builder.QueryBuilder; import cc.carm.lib.easysql.api.builder.TableQueryBuilder; import cc.carm.lib.easysql.builder.AbstractSQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.util.Objects; @@ -21,13 +21,13 @@ public class QueryBuilderImpl extends AbstractSQLBuilder implements QueryBuilder @Deprecated public QueryAction withSQL(@NotNull String sql) { Objects.requireNonNull(sql, "sql could not be null"); - return new QueryActionImpl(getManager(), sql); + return new SQLQueryActionImpl(getManager(), sql); } @Override public PreparedQueryAction withPreparedSQL(@NotNull String sql) { Objects.requireNonNull(sql, "sql could not be null"); - return new PreparedQueryActionImpl(getManager(), sql); + return new PreparedSQLQueryActionImpl(getManager(), sql); } @Override diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/ReplaceBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/ReplaceBuilderImpl.java index e8aa5e9..6b746c6 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/ReplaceBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/ReplaceBuilderImpl.java @@ -2,7 +2,7 @@ package cc.carm.lib.easysql.builder.impl; import cc.carm.lib.easysql.api.builder.ReplaceBuilder; import cc.carm.lib.easysql.builder.AbstractSQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import java.util.List; diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableAlterBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableAlterBuilderImpl.java index 059d81f..3f82354 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableAlterBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableAlterBuilderImpl.java @@ -4,7 +4,7 @@ import cc.carm.lib.easysql.action.UpdateActionImpl; import cc.carm.lib.easysql.api.builder.TableAlterBuilder; import cc.carm.lib.easysql.api.enums.IndexType; import cc.carm.lib.easysql.builder.AbstractSQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableCreateBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableCreateBuilderImpl.java index 3e2eb28..9c54f54 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableCreateBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableCreateBuilderImpl.java @@ -7,7 +7,7 @@ import cc.carm.lib.easysql.api.enums.ForeignKeyRule; import cc.carm.lib.easysql.api.enums.IndexType; import cc.carm.lib.easysql.api.enums.NumberType; import cc.carm.lib.easysql.builder.AbstractSQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableMetadataBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableMetadataBuilderImpl.java index 8f2d33f..108eaa4 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableMetadataBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableMetadataBuilderImpl.java @@ -4,7 +4,7 @@ import cc.carm.lib.easysql.api.builder.TableMetadataBuilder; import cc.carm.lib.easysql.api.function.SQLBiFunction; import cc.carm.lib.easysql.api.function.SQLFunction; import cc.carm.lib.easysql.builder.AbstractSQLBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableQueryBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableQueryBuilderImpl.java index e73f811..ecc3930 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableQueryBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/TableQueryBuilderImpl.java @@ -1,9 +1,9 @@ package cc.carm.lib.easysql.builder.impl; -import cc.carm.lib.easysql.action.query.PreparedQueryActionImpl; +import cc.carm.lib.easysql.action.query.PreparedSQLQueryActionImpl; import cc.carm.lib.easysql.api.action.base.PreparedQueryAction; import cc.carm.lib.easysql.api.builder.TableQueryBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -30,7 +30,7 @@ public class TableQueryBuilderImpl } @Override - public PreparedQueryActionImpl build() { + public PreparedSQLQueryActionImpl build() { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append("SELECT").append(" "); if (columns == null || columns.length < 1) { @@ -58,7 +58,7 @@ public class TableQueryBuilderImpl } - return new PreparedQueryActionImpl(getManager(), sqlBuilder.toString()) + return new PreparedSQLQueryActionImpl(getManager(), sqlBuilder.toString()) .setParams(hasConditionParams() ? getConditionParams() : null); } diff --git a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/UpdateBuilderImpl.java b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/UpdateBuilderImpl.java index 1f36ab6..588dd36 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/builder/impl/UpdateBuilderImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/builder/impl/UpdateBuilderImpl.java @@ -1,9 +1,9 @@ package cc.carm.lib.easysql.builder.impl; -import cc.carm.lib.easysql.action.PreparedUpdateActionImpl; +import cc.carm.lib.easysql.action.PreparedSQLUpdateActionImpl; import cc.carm.lib.easysql.api.action.base.PreparedUpdateAction; import cc.carm.lib.easysql.api.builder.UpdateBuilder; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -46,7 +46,7 @@ public class UpdateBuilderImpl if (limit > 0) sqlBuilder.append(" ").append(buildLimitSQL()); - return new PreparedUpdateActionImpl<>(getManager(), Integer.class, sqlBuilder.toString(), allParams); + return new PreparedSQLUpdateActionImpl<>(getManager(), Integer.class, sqlBuilder.toString(), allParams); } @Override diff --git a/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java b/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java index 8b9cca1..fee9a3e 100644 --- a/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java +++ b/impl/src/main/java/cc/carm/lib/easysql/query/SQLQueryImpl.java @@ -1,8 +1,8 @@ package cc.carm.lib.easysql.query; -import cc.carm.lib.easysql.action.query.QueryActionImpl; +import cc.carm.lib.easysql.action.query.SQLQueryActionImpl; import cc.carm.lib.easysql.api.SQLQuery; -import cc.carm.lib.easysql.manager.SQLManagerImpl; +import cc.carm.lib.easysql.SQLManagerImpl; import java.sql.Connection; import java.sql.ResultSet; @@ -18,17 +18,17 @@ public class SQLQueryImpl implements SQLQuery { protected final Connection connection; protected final Statement statement; protected final ResultSet resultSet; - protected QueryActionImpl queryAction; + protected SQLQueryActionImpl queryAction; public SQLQueryImpl( - SQLManagerImpl sqlManager, QueryActionImpl queryAction, + SQLManagerImpl sqlManager, SQLQueryActionImpl queryAction, Connection connection, Statement statement, ResultSet resultSet ) { this(sqlManager, queryAction, connection, statement, resultSet, System.nanoTime()); } public SQLQueryImpl( - SQLManagerImpl sqlManager, QueryActionImpl queryAction, + SQLManagerImpl sqlManager, SQLQueryActionImpl queryAction, Connection connection, Statement statement, ResultSet resultSet, long executeTime ) { @@ -51,7 +51,7 @@ public class SQLQueryImpl implements SQLQuery { } @Override - public QueryActionImpl getAction() { + public SQLQueryActionImpl getAction() { return this.queryAction; } @@ -79,7 +79,7 @@ public class SQLQueryImpl implements SQLQuery { ex.printStackTrace(); } } - getManager().getActiveQuery().remove(getAction().getActionUUID()); + getManager().getActiveQueries().remove(getAction().getActionUUID()); } catch (SQLException e) { getAction().handleException(getAction().defaultExceptionHandler(), e); } diff --git a/with-pool/beecp/src/main/java/cc/carm/lib/easysql/EasySQL.java b/with-pool/beecp/src/main/java/cc/carm/lib/easysql/EasySQL.java index 6d183f9..d8ad63a 100644 --- a/with-pool/beecp/src/main/java/cc/carm/lib/easysql/EasySQL.java +++ b/with-pool/beecp/src/main/java/cc/carm/lib/easysql/EasySQL.java @@ -2,7 +2,6 @@ package cc.carm.lib.easysql; import cc.carm.lib.easysql.api.SQLQuery; import cc.carm.lib.easysql.api.util.TimeDateUtils; -import cc.carm.lib.easysql.manager.SQLManagerImpl; import cn.beecp.BeeDataSource; import cn.beecp.BeeDataSourceConfig; import org.jetbrains.annotations.NotNull; diff --git a/with-pool/hikaricp/src/main/java/cc/carm/lib/easysql/EasySQL.java b/with-pool/hikaricp/src/main/java/cc/carm/lib/easysql/EasySQL.java index 74a34dc..0cc68b1 100644 --- a/with-pool/hikaricp/src/main/java/cc/carm/lib/easysql/EasySQL.java +++ b/with-pool/hikaricp/src/main/java/cc/carm/lib/easysql/EasySQL.java @@ -2,7 +2,6 @@ package cc.carm.lib.easysql; import cc.carm.lib.easysql.api.SQLQuery; import cc.carm.lib.easysql.api.util.TimeDateUtils; -import cc.carm.lib.easysql.manager.SQLManagerImpl; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.jetbrains.annotations.NotNull;