-
[birt2.3]birt动态拼接sql与参数标记混合使用的问题5
小弟最近刚接触birt,公司使用的是比较老版本的birt2.3,birt查询语句中使用的参数不固定,因此需要使用script脚本来进行控制,现在编写了beforeOpen的script如下:
var startTime = params["startTime"].value; this.queryText = "SELECT id, name FROM test_table where 1=1 "; if (startTime !=null && "" != startTime) { this.queryText += " and startTime=" +startTime; }
但是众所周知,使用字符串相加的形式来拼接SQL语句,会有SQL注入的问题,因此最好是使用占位符的方式来传递参数,如
var startTime = params["startTime"].value; this.queryText = "SELECT id, name FROM test_table where 1=1 "; if (startTime !=null && "" != startTime) { this.queryText += " and startTime=?"; }
但 是不知道birt的beforeOpen中的script是否支持这种写法,因为就我看到的,birt中的占位符是需要个数,与sql语句当中的一致的, 但是,SQL语句中占位符的个数肯定是不一致的,不知道各位有没有什么好的解决方法,最好是能够像jdbc中的preparedstatement一样
List args = new ArrayList(); StringBuffer buffer = new StringBuffer("SELECT id, name FROM test_table where 1=1 "); String name = request.getParameter("name"); if (!"".equals(name)) { buffer.append(" and name=?"); args.add(name); } ...//execute......
2012年8月21日 13:25
目前还没有答案
相关推荐
在本文中,我们将探讨将BIRT整合到Web项目中时可能会遇到的问题及其解决方案,包括BIRT与EXT的集成、MDX语言的使用、参数传递、报表展示以及界面定制等关键点。 1. **将BIRT放到Web项目中** 在Web项目中整合BIRT,...
- 在`beforeOpen`脚本中,通过`reportContext.getParameterValue()`获取参数值,然后根据业务逻辑拼接SQL语句。 6. **报表Web页面汉化**: 要实现Birt报表Web界面的本地化,需要修改相关JSP文件,如`...
2. 对于多参数查询,BIRT允许在数据集的脚本中动态构造SQL查询语句。首先,创建数据集并定义所需的查询参数。然后,在数据集的`beforeOpen`事件中,通过`params[parameterName]`引用前端传递的参数。例如,检查参数`...
代码审计Forfity常见扫描漏洞原理与修复意见介绍 代码审计是软件开发过程中的一种重要...* 使用安全的 SQL 语句,例如使用参数化查询来避免 SQL 注入。 * 对用户输入进行验证和限制,例如使用白名单来限制用户输入。
例如,创建两个报表用户参数,然后在After Parameter Form触发器中根据条件拼接字符串,并将其应用到数据模型的SQL语句中。 **矩阵报表** Oracle Report中的矩阵报表可能让人感到陌生,实际上它类似于其他工具中的...
描述中的“通过数据库数据拼接表格,实现报表的展示,可灵活配置”提示我们,这个项目可能使用了SQL查询来从数据库中提取数据,并在前端进行表格的构建。数据拼接是指将多个数据源的数据合并成一个统一的视图,这...