source.parser优化

This commit is contained in:
redkale
2024-05-22 11:37:42 +08:00
parent 04a8c6f784
commit 95836a73cd
3 changed files with 21 additions and 18 deletions

View File

@@ -60,7 +60,7 @@
MQ跟着协议走所以mq的属性值需要被赋值在rest节点上, 由于SncpServlet是自动生成的故SNCP协议下mq属性值被赋值在service/services节点上 MQ跟着协议走所以mq的属性值需要被赋值在rest节点上, 由于SncpServlet是自动生成的故SNCP协议下mq属性值被赋值在service/services节点上
name: 服务的名称用于监控识别多个mq节点时只能有一个name为空的节点mq.name不能重复,命名规则: 字母、数字、下划线 name: 服务的名称用于监控识别多个mq节点时只能有一个name为空的节点mq.name不能重复,命名规则: 字母、数字、下划线
type 实现类名必须是org.redkale.mq.MessageAgent的子类 type 实现类名必须是org.redkale.mq.MessageAgent的子类
threads线程数为0表示使用workExecutor。默认: CPU核数, 核数=1的情况下默认值为2JDK 21以上版本默认使用虚拟线程池 threads 线程数为0表示使用workExecutor。默认: CPU核数, 核数=1的情况下默认值为2JDK 21以上版本默认使用虚拟线程池
rpcfirstcluster和mq同名组件时HttpRpcClient优先使用MQ默认不优先走MQ。 rpcfirstcluster和mq同名组件时HttpRpcClient优先使用MQ默认不优先走MQ。
coder: MessageRecord的解析器类必须是org.redkale.mq.MessageCoder<MessageRecord>的实现类, coder: MessageRecord的解析器类必须是org.redkale.mq.MessageCoder<MessageRecord>的实现类,
可对数据包进行加密解密默认值org.redkale.mq.MessageRecordCoder 可对数据包进行加密解密默认值org.redkale.mq.MessageRecordCoder

View File

@@ -2629,16 +2629,17 @@ public class DataJdbcSource extends AbstractDataSqlSource {
} }
long total = -1; long total = -1;
List<V> list; List<V> list;
final String countSql = sinfo.getNativeCountSql();
if (sinfo.isEmptyNamed()) { if (sinfo.isEmptyNamed()) {
Statement stmt = conn.createQueryStatement(); Statement stmt = conn.createQueryStatement();
ResultSet set = stmt.executeQuery(sinfo.getNativeCountSql()); ResultSet set = stmt.executeQuery(countSql);
if (set.next()) { if (set.next()) {
total = set.getLong(1); total = set.getLong(1);
} }
set.close(); set.close();
conn.offerQueryStatement(stmt); conn.offerQueryStatement(stmt);
} else { } else {
final PreparedStatement prestmt = conn.prepareQueryStatement(sinfo.getNativeCountSql()); final PreparedStatement prestmt = conn.prepareQueryStatement(countSql);
Map<String, Object> paramValues = sinfo.getParamValues(); Map<String, Object> paramValues = sinfo.getParamValues();
int index = 0; int index = 0;
for (String n : sinfo.getParamNames()) { for (String n : sinfo.getParamNames()) {
@@ -2651,7 +2652,7 @@ public class DataJdbcSource extends AbstractDataSqlSource {
set.close(); set.close();
conn.offerQueryStatement(prestmt); conn.offerQueryStatement(prestmt);
} }
slowLog(s, sinfo.getNativeCountSql()); slowLog(s, countSql);
if (total > 0) { if (total > 0) {
String listSql = sinfo.getNativeSql(); String listSql = sinfo.getNativeSql();
if (mysqlOrPgsql) { if (mysqlOrPgsql) {

View File

@@ -6,6 +6,7 @@ package org.redkale.source;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.IntFunction; import java.util.function.IntFunction;
import org.redkale.annotation.Nullable;
import org.redkale.convert.ConvertDisabled; import org.redkale.convert.ConvertDisabled;
import org.redkale.convert.json.JsonConvert; import org.redkale.convert.json.JsonConvert;
@@ -40,6 +41,7 @@ public class DataNativeSqlStatement {
protected String nativeSql; protected String nativeSql;
//根据参数值集合重新生成的带?参数可执行的计算总数sql,用于返回Sheet对象 //根据参数值集合重新生成的带?参数可执行的计算总数sql,用于返回Sheet对象
@Nullable
protected String nativeCountSql; protected String nativeCountSql;
//需要预编译的##{xxx}、#{xxx}参数名, 数量与sql中的?数量一致 //需要预编译的##{xxx}、#{xxx}参数名, 数量与sql中的?数量一致