diff --git a/src/org/redkale/source/DataJdbcSource.java b/src/org/redkale/source/DataJdbcSource.java index 201bce913..db8af8e7d 100644 --- a/src/org/redkale/source/DataJdbcSource.java +++ b/src/org/redkale/source/DataJdbcSource.java @@ -511,6 +511,20 @@ public class DataJdbcSource extends DataSqlSource { } } + /** + * 直接本地执行SQL语句进行增删改操作,远程模式不可用
+ * 通常用于复杂的更新操作
+ * + * @param sql SQL语句 + * + * @return 结果数组 + */ + @Local + @Override + public int directExecute(String sql) { + return directExecute(new String[]{sql})[0]; + } + /** * 直接本地执行SQL语句进行增删改操作,远程模式不可用
* 通常用于复杂的更新操作
@@ -520,6 +534,7 @@ public class DataJdbcSource extends DataSqlSource { * @return 结果数组 */ @Local + @Override public int[] directExecute(String... sqls) { if (sqls.length == 0) return new int[0]; Connection conn = writePool.poll(); @@ -548,6 +563,7 @@ public class DataJdbcSource extends DataSqlSource { * @param consumer 回调函数 */ @Local + @Override public void directQuery(String sql, Consumer consumer) { final Connection conn = readPool.poll(); try { diff --git a/src/org/redkale/source/DataSqlSource.java b/src/org/redkale/source/DataSqlSource.java index 96f90ce5c..0fea738ec 100644 --- a/src/org/redkale/source/DataSqlSource.java +++ b/src/org/redkale/source/DataSqlSource.java @@ -106,6 +106,15 @@ public abstract class DataSqlSource extends AbstractService implement this.writePool = createPoolSource(this, "write", queue, writeprop); } + @Local + public abstract int directExecute(String sql); + + @Local + public abstract int[] directExecute(String... sqls); + + @Local + public abstract void directQuery(String sql, Consumer consumer); + //是否异步, 为true则只能调用pollAsync方法,为false则只能调用poll方法 protected abstract boolean isAsync();