Closed NapChen closed 1 year ago
sql配置截图看下
sql配置截图看下
spring:
datasource:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
username: ${DB_USER:***}
password: ${DB_PWD:***}
# 初始连接数
initial-size: 5
# 最小连接数
min-idle: 15
# 最大连接数
max-active: 30
# 获取连接超时时间
max-wait: 5000
# 连接有效性检测时间
time-between-eviction-runs-millis: 60000
# 连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
# 连接在池中最大生存的时间
max-evictable-idle-time-millis: 900000
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
test-while-idle: true
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
test-on-borrow: true
# 是否在归还到池中前进行检验
test-on-return: false
# 检测连接是否有效
validation-query: select 1 from dual
# 配置监控统计
webStatFilter:
enabled: true
stat-view-servlet:
enabled: true
# 控制台管理用户名和密码
url-pattern: /druid/*
reset-enable: false
login-username: admin
login-password: 123456
filter:
stat:
enabled: true
# 记录慢SQL
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
jeecg:
# local|minio|alioss
uploadType: local
# local
path:
#文件路径
upload: D:\zdl-web\file\report\
jmreport:
#多租户模式,默认值为空(created:按照创建人隔离、tenant:按照租户隔离) (v1.6.2+ 新增)
# saasMode: tenant
# 平台上线安全配置(v1.6.2+ 新增)
firewall:
# 数据源安全 (开启后,不允许使用平台数据源、SQL解析加签并不允许查询数据库)
dataSourceSafe: false
# 低代码开发模式(dev:开发模式,prod:发布模式—关闭在线报表设计功能,分配角色admin、lowdeveloper可放开限制)
lowCodeMode: dev
你的报表的数据集的sql
你的报表的数据集的sql
select t.*
from V_REP_MATERIAL_CONSUMP_CLASS t
where to_date(t.DATE_TIME, 'yyyy-mm-dd') >= to_date('${startTime}', 'yyyy-mm-dd')
and to_date(t.DATE_TIME, 'yyyy-mm-dd') <= to_date('${endTime}', 'yyyy-mm-dd')
and t.LINENAME like '%${linename}%'
order by to_date(t.DATE_TIME, 'yyyy-mm-dd') desc, LINENAME asc, DATA_SORT asc
1.6.2 版本后 like语句需要使用sql自带函数concat
拼接一下,如CONCAT(CONCAT('%','${参数}'),'%'))
参考文档:https://help.jeecg.com/jimureport/query/function.html#4-like%E6%9F%A5%E8%AF%A2
版本号:
1.6.4
问题描述:
在1.6.2以前采用拼接SQL字符串的形式时,当参数传递为null值时,拼接时会替换成空字符串,此时可以通过like实现动态传参,在1.6.2以后采用占位符的形式,如果参数传递null,并未进行转化,导致无法查询数据。
地址链接
http://localhost:8000/jmreport/getQueryInfo?reportId=872604082071498752¶m={"token":"eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiJlMzkwZmNjNWY1MTM0YTQ3OGE1YTJjYjg0ZGZmMTg1MiIsInVzZXIiOiJhZG1pbiIsInN1YiI6ImFkbWluIn0.UnVjDfTbAGLzW0T3uRVr88l65RRJwTXIxxjiq05gbiAc3SnZFQkwvqcnyDNr7g1B1eeATFOgGyykHSW0wIPTXw","reportType":"materialConsumptionClassReport","linename":"","startTime":"2023-10-01","endTime":"2023-10-17"}
其中的参数linename的值为空。
1.6.2 输出SQL,此时能够查询出数据
1.6.4 输出SQL,此时不能查询出数据
此时输出的参数日志
jc-2023-10-17 10:28:52 [http-nio-8000-exec-1] INFO o.j.m.jmreport.desreport.service.a.e - ------报表查询参数: {startTime=2023-08-01, linename=null, endTime=2023-10-17}
错误日志&截图:
重现步骤:
分别使用1.6.0和1.6.4在SQL中使用like语法,并传递一个空参数