diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateAction.java index f4c1dad..39e6beb 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateAction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateAction.java @@ -17,6 +17,7 @@ public interface PreparedSQLUpdateAction extends SQLUpdateActi * * @param params 参数内容 * @return {@link PreparedSQLUpdateAction} + * @since 0.4.0 */ PreparedSQLUpdateAction setParams(@Nullable Iterable params); diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateBatchAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateBatchAction.java index 9bc961a..d5d965d 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateBatchAction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/PreparedSQLUpdateBatchAction.java @@ -35,6 +35,7 @@ public interface PreparedSQLUpdateBatchAction extends SQLActio * @param keyTypeClass 自增序列的数字类型 * @param 自增键序列类型 {@link Number} * @return {@link SQLUpdateAction} + * @since 0.4.0 */ PreparedSQLUpdateBatchAction returnGeneratedKeys(Class keyTypeClass); diff --git a/api/src/main/java/cc/carm/lib/easysql/api/action/SQLUpdateAction.java b/api/src/main/java/cc/carm/lib/easysql/api/action/SQLUpdateAction.java index d7b0253..12f75a6 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/action/SQLUpdateAction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/action/SQLUpdateAction.java @@ -18,6 +18,7 @@ public interface SQLUpdateAction extends SQLAction { * @param keyTypeClass 自增序列的数字类型 * @param 自增键序列类型 {@link Number} * @return {@link SQLUpdateAction} + * @since 0.4.0 */ SQLUpdateAction returnGeneratedKey(Class keyTypeClass); diff --git a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLFunction.java b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLFunction.java index cf803fe..8f1b776 100644 --- a/api/src/main/java/cc/carm/lib/easysql/api/function/SQLFunction.java +++ b/api/src/main/java/cc/carm/lib/easysql/api/function/SQLFunction.java @@ -4,6 +4,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.sql.SQLException; +import java.util.Objects; @FunctionalInterface public interface SQLFunction { @@ -11,4 +12,23 @@ public interface SQLFunction { @Nullable R apply(@NotNull T t) throws SQLException; + default SQLFunction compose(@NotNull SQLFunction before) { + Objects.requireNonNull(before); + return (V v) -> { + T t = before.apply(v); + if (t == null) return null; + else return apply(t); + }; + } + + default SQLFunction then(@NotNull SQLFunction after) { + Objects.requireNonNull(after); + return (T t) -> { + R r = apply(t); + if (r == null) return null; + else return after.apply(r); + }; + } + + } 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 69d410f..a8762f1 100644 --- a/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java +++ b/demo/src/test/java/cc/carm/lib/easysql/EasySQLTest.java @@ -6,23 +6,38 @@ import cc.carm.lib.easysql.tests.*; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.jetbrains.annotations.NotNull; +import org.junit.After; +import org.junit.Before; import org.junit.Test; -import java.math.BigInteger; import java.util.LinkedHashSet; import java.util.Set; public class EasySQLTest { + protected SQLManager sqlManager; - @Test - public void onTest() { + @Before + public void initDatabase() { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.h2.Driver"); config.setJdbcUrl("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=MYSQL;"); - SQLManager sqlManager = new SQLManagerImpl(new HikariDataSource(config), "test"); - sqlManager.setDebugMode(true); + this.sqlManager = new SQLManagerImpl(new HikariDataSource(config), "test"); + this.sqlManager.setDebugMode(true); + } + + @After + public void shutdownDatabase() { + if (sqlManager.getDataSource() instanceof HikariDataSource) { + //Close bee connection pool + ((HikariDataSource) sqlManager.getDataSource()).close(); + } + } + + + @Test + public void onTest() { print("加载测试类..."); Set tests = new LinkedHashSet<>(); @@ -62,10 +77,6 @@ public class EasySQLTest { success, (tests.size() - success) ); - if (sqlManager.getDataSource() instanceof HikariDataSource) { - //Close bee connection pool - ((HikariDataSource) sqlManager.getDataSource()).close(); - } }