数据源用法介绍
本章介绍数据源用法
一、SQL数据源
1、$是用来传递参数的,如:当是字符串的时候$或者#需要加上单引号或双引号,如'$'、'#'
select username,realname from test where username='${username}'
如果username
为admin
,那么后台替换完成后sql语句变成
select username,realname from test where username='admin'
1) 在数据源中配置文本框输入,可以在报表参数中填写默认值和查询条件,如图一所示
图一
在预览页面可以直接在查询栏中进行查询 2)效果展示
2、#代表使用系统变量的,如当前登录登录人:
1)sysUserCode
代表当前登录人,本示例是当前登录人admin
select * from sys_user where username='#{sysUserCode}'
后台替换完成后sql语句变成
select * from sys_user where username='admin'
2)效果展示
3、存储过程
在SQL 数据集配置界面,在报表SQL栏输入表达式
CALL [name](${param}, ...)
,CALL为开启存储过程
[name]
:存储过程名称
param
:传入的参数(多个拼接逗号即可,如username
,realname
)
如:
CALL test_information( '${username}', '${realname}' )
弹窗设置默认值
SQL解析字段
二、API数据源
1、$是用来传递参数的,如: 多个参数用&拼接
http://192.168.1.107:8080/jeecg-boot/jmreport/test/getUserMsg?cname='${cname}'&did='${did}'
当api为牛奶,did为1时后台替换完成后api语句变成
http://192.168.1.107:8080/jeecg-boot/jmreport/test/getUserMsg?cname='牛奶'&did='1'
点击api解析即可解析出来字段,在参数中设置查询即可在预览页面进行查询搜索
效果展示
2、#使用来代表系统变量的,如系统时间:
http://192.168.1.107:8080/jeecg-boot/jmreport/test/getUserMsg?riqi=#{sysDateTime}
如当前系统时间时2021-08-11 17:22:30,那么在后台就会被替换成
http://192.168.1.107:8080/jeecg-boot/jmreport/test/getUserMsg?riqi=2021-08-11 17:22:30
展示效果
3、
{{ domainURL }}
可以替换当前ip、端口号、项目名称如:
{{ domainURL }} /jmreport/test/getUserMsg
在后台就会被替换成
http://192.168.1.107:8080/jeecg-boot/jmreport/test/getUserMsg
三、MogoDb用法
1、在数据源维护中创建MogoDb数据源,点击测试出现测试成功即可
数据源类型:MogoDb
数据源地址: 地址:端口号/数据库名称,如:192.168.1.103:27107/test
2、MogoDb支持的写法
[table]:创建的集合table
query
:为可选项,设置查询操作符指定查询条件;
db.getCollection([table]).find(query)
示例:
db.getCollection('user').find({})
db.getCollection('user').find({name: '张三'}) //条件查询
db.getCollection('user').find({name: /张/, age:{$gt:10} }) //模糊、大于小于查询
db.getCollection('user').find({name: /张/}).limit(1) //分页
db.getCollection('user').find({name: /张/}).sort({age:-1}) //排序
3、在数据源页配置面选择MogoDb,并在报表SQL栏输入支持的语法
4、传参设置
配置$参数传递,如${name}
db.getCollection('user').find({ name:${name}})
设置参数以及默认值
四、redis用法
1、在数据源维护创建redis数据源,点击测试出现测试成功即可
数据源类型:redis,
数据源地址:地址加上端口号(不需要http) 如 127.0.0.1:6379
2、在数据源页配置面选择redis,并在报表SQL栏输入redis对应的key
redis取值为字符串类型的json数组对象,否则解析不出来字段。示例如下 :
[
{
"username": "张三",
age: 20
},{
"username": "李四",
age: 22
}
]
在sql解析即可展示出字段