Appearance
动态参数sql
点击观看本节视频
不管是通过sql语句,存储过程,或者是api请求获取报表数据,都需要配合一定的查询条件去查询数据,这就需要去结合sql语句去配置参数,并且sql语句的书写也有一定的规范。
sql语句书写规范
SpringReport的sql语句的解析规则与mybatis一致,mybatis的所有语法都可以使用,包括标签,像<where>标签,<if>标签,<foreach>标签等,参数使用#{}来接受,例如#{userName}
sql语句示例以及与参数配合使用
select
*
from
sys_menu
<where>
<if test="menu_name !=null and menu_name !=''">
and menu_name = #{menu_name}
</if>
<if test="menuIcon !=null and menuIcon !=''">
and menu_icon = #{menuIcon}
</if>
</where>
上方sql语句是一个根据查询条件menu_name和menuIcon两个参数查询的sql语句,
<if>标签用来动态过滤查询条件,如果参数不传入值则不会作为查询条件,例如件menu_name和menuIcon两个参数,
menu_name = '测试',menuIcon = '',
则最后的执行语句是select * from sys_menu where menu_name = '测试',menuIcon这个参数由于没有传入实际的值,则不会作为查询条件
参数要想起作用,只在sql语句中写不是可以的,还必须在参数配置tab页中添加参数,如下图所示,添加了两个参数,
1.参数名:菜单名称 参数编码:menu_name
2.参数名:菜单图标 参数编码:menuIcon
参数名:页面上实际显示的名称,让用户更清楚明白参数的含义
参数编码:后台接收参数和传递参数的属性,sql语句中接收参数的属性必须使用参数编码进行接收,如#{menuIcon},#{menu_name},都是使用的参数编码进行接收参数