跳到主要内容

数据源用法介绍

本章介绍数据源用法

一、SQL数据源

当是字符串的时候$或者#需要加上单引号或双引号,如'$'、'#'

1、$是用来传递参数的,如:

select username,realname  from test where username='${username}'

如果usernameadmin,那么后台替换完成后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解析即可展示出字段