diff --git a/api/pom.xml b/api/pom.xml
index 3a9a0bf..916b790 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -5,7 +5,7 @@
cc.carm.lib
easysql-parent
- 0.4.0
+ 0.4.1
4.0.0
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 80d7106..fa3a978 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
@@ -17,6 +17,8 @@ import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.UUID;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
import java.util.function.Supplier;
/**
@@ -30,6 +32,23 @@ public interface SQLManager {
boolean isDebugMode();
+
+ /**
+ * 获取用于执行 {@link SQLAction#executeAsync()} 的线程池。
+ *
默认线程池为 {@link ThreadPoolExecutor} ,大小为 3。
+ *
+ * @return {@link ExecutorService}
+ */
+ @NotNull ExecutorService getExecutorPool();
+
+ /**
+ * 设定用于执行 {@link SQLAction#executeAsync()} 的线程池。
+ *
+ * @param executorPool {@link ExecutorService}
+ */
+ void setExecutorPool(@NotNull ExecutorService executorPool);
+
+
/**
* 设定是否启用调试模式。
* 启用调试模式后,会在每次执行SQL语句时,调用 {@link #getDebugHandler()} 来输出调试信息。
diff --git a/demo/pom.xml b/demo/pom.xml
index d0b8bf9..ad2a8f4 100644
--- a/demo/pom.xml
+++ b/demo/pom.xml
@@ -5,7 +5,7 @@
easysql-parent
cc.carm.lib
- 0.4.0
+ 0.4.1
4.0.0
@@ -70,7 +70,6 @@
com.zaxxer
HikariCP
4.0.3
- test
@@ -78,28 +77,24 @@
com.h2database
h2
2.1.214
- test
org.apache.logging.log4j
log4j-api
${log4j.version}
- compile
org.apache.logging.log4j
log4j-core
${log4j.version}
- compile
org.apache.logging.log4j
log4j-slf4j-impl
${log4j.version}
- compile
@@ -120,4 +115,5 @@
+
\ No newline at end of file
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 a8762f1..b5821d0 100644
--- a/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java
+++ b/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java
@@ -18,7 +18,7 @@ public class EasySQLTest {
protected SQLManager sqlManager;
@Before
- public void initDatabase() {
+ public void initialize() {
HikariConfig config = new HikariConfig();
config.setDriverClassName("org.h2.Driver");
config.setJdbcUrl("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=MYSQL;");
@@ -28,7 +28,7 @@ public class EasySQLTest {
}
@After
- public void shutdownDatabase() {
+ public void shutdown() {
if (sqlManager.getDataSource() instanceof HikariDataSource) {
//Close bee connection pool
((HikariDataSource) sqlManager.getDataSource()).close();
@@ -50,6 +50,7 @@ public class EasySQLTest {
tests.add(new SQLUpdateReturnKeysTest());
tests.add(new QueryCloseTest());
tests.add(new QueryFunctionTest());
+ tests.add(new QueryAsyncTest());
// tests.add(new DeleteTest());
print("准备进行测试...");
diff --git a/demo/src/test/java/cc/carm/lib/easysql/tests/QueryAsyncTest.java b/demo/src/test/java/cc/carm/lib/easysql/tests/QueryAsyncTest.java
new file mode 100644
index 0000000..265eea1
--- /dev/null
+++ b/demo/src/test/java/cc/carm/lib/easysql/tests/QueryAsyncTest.java
@@ -0,0 +1,33 @@
+package cc.carm.lib.easysql.tests;
+
+import cc.carm.lib.easysql.TestHandler;
+import cc.carm.lib.easysql.api.SQLManager;
+
+import java.sql.SQLException;
+
+public class QueryAsyncTest extends TestHandler {
+
+
+ @Override
+ public void onTest(SQLManager sqlManager) throws SQLException {
+
+ sqlManager.createQuery()
+ .inTable("test_user_table")
+ .orderBy("id", false)
+ .setLimit(1)
+ .build().executeAsync(query -> {
+ try {
+ Thread.sleep(1000L);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ if (!query.getResultSet().next()) {
+ System.out.println("id (ps): NULL");
+ } else {
+ System.out.println("id (ps): " + query.getResultSet().getInt("id"));
+ }
+ });
+
+ }
+}
diff --git a/impl/pom.xml b/impl/pom.xml
index 80b5742..d0406bf 100644
--- a/impl/pom.xml
+++ b/impl/pom.xml
@@ -5,7 +5,7 @@
easysql-parent
cc.carm.lib
- 0.4.0
+ 0.4.1
4.0.0
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/QueryActionImpl.java
index 8d2eb9c..7cf6fa6 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/QueryActionImpl.java
@@ -53,10 +53,12 @@ public class QueryActionImpl extends AbstractSQLAction implements Quer
@Override
public void executeAsync(SQLHandler success, SQLExceptionHandler failure) {
- try (SQLQueryImpl query = execute()) {
- if (success != null) success.accept(query);
- } catch (SQLException exception) {
- handleException(failure, exception);
- }
+ getManager().getExecutorPool().submit(() -> {
+ try (SQLQueryImpl query = execute()) {
+ if (success != null) success.accept(query);
+ } catch (SQLException exception) {
+ handleException(failure, exception);
+ }
+ });
}
}
diff --git a/impl/src/main/java/cc/carm/lib/easysql/manager/SQLManagerImpl.java b/impl/src/main/java/cc/carm/lib/easysql/manager/SQLManagerImpl.java
index ab414bf..22f9f67 100644
--- a/impl/src/main/java/cc/carm/lib/easysql/manager/SQLManagerImpl.java
+++ b/impl/src/main/java/cc/carm/lib/easysql/manager/SQLManagerImpl.java
@@ -89,10 +89,14 @@ public class SQLManagerImpl implements SQLManager {
return LOGGER;
}
- public ExecutorService getExecutorPool() {
+ public @NotNull ExecutorService getExecutorPool() {
return executorPool;
}
+ public void setExecutorPool(@NotNull ExecutorService executorPool) {
+ this.executorPool = executorPool;
+ }
+
@Override
public @NotNull DataSource getDataSource() {
return this.dataSource;
diff --git a/pom.xml b/pom.xml
index 8e7f1fb..d183637 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
cc.carm.lib
easysql-parent
pom
- 0.4.0
+ 0.4.1
api
diff --git a/with-pool/beecp/pom.xml b/with-pool/beecp/pom.xml
index e60f559..62192f3 100644
--- a/with-pool/beecp/pom.xml
+++ b/with-pool/beecp/pom.xml
@@ -5,7 +5,7 @@
easysql-parent
cc.carm.lib
- 0.4.0
+ 0.4.1
../../pom.xml
4.0.0
diff --git a/with-pool/hikaricp/pom.xml b/with-pool/hikaricp/pom.xml
index f28248e..797cb7d 100644
--- a/with-pool/hikaricp/pom.xml
+++ b/with-pool/hikaricp/pom.xml
@@ -5,7 +5,7 @@
easysql-parent
cc.carm.lib
- 0.4.0
+ 0.4.1
../../pom.xml
4.0.0