This commit is contained in:
Redkale
2018-05-19 10:51:30 +08:00
parent 6e81541a3b
commit 8e0788ccf3
2 changed files with 25 additions and 0 deletions

View File

@@ -511,6 +511,20 @@ public class DataJdbcSource extends DataSqlSource<Connection> {
} }
} }
/**
* 直接本地执行SQL语句进行增删改操作远程模式不可用 <br>
* 通常用于复杂的更新操作 <br>
*
* @param sql SQL语句
*
* @return 结果数组
*/
@Local
@Override
public int directExecute(String sql) {
return directExecute(new String[]{sql})[0];
}
/** /**
* 直接本地执行SQL语句进行增删改操作远程模式不可用 <br> * 直接本地执行SQL语句进行增删改操作远程模式不可用 <br>
* 通常用于复杂的更新操作 <br> * 通常用于复杂的更新操作 <br>
@@ -520,6 +534,7 @@ public class DataJdbcSource extends DataSqlSource<Connection> {
* @return 结果数组 * @return 结果数组
*/ */
@Local @Local
@Override
public int[] directExecute(String... sqls) { public int[] directExecute(String... sqls) {
if (sqls.length == 0) return new int[0]; if (sqls.length == 0) return new int[0];
Connection conn = writePool.poll(); Connection conn = writePool.poll();
@@ -548,6 +563,7 @@ public class DataJdbcSource extends DataSqlSource<Connection> {
* @param consumer 回调函数 * @param consumer 回调函数
*/ */
@Local @Local
@Override
public void directQuery(String sql, Consumer<ResultSet> consumer) { public void directQuery(String sql, Consumer<ResultSet> consumer) {
final Connection conn = readPool.poll(); final Connection conn = readPool.poll();
try { try {

View File

@@ -106,6 +106,15 @@ public abstract class DataSqlSource<DBChannel> extends AbstractService implement
this.writePool = createPoolSource(this, "write", queue, writeprop); 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<ResultSet> consumer);
//是否异步, 为true则只能调用pollAsync方法为false则只能调用poll方法 //是否异步, 为true则只能调用pollAsync方法为false则只能调用poll方法
protected abstract boolean isAsync(); protected abstract boolean isAsync();