0 0

[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整合到Web项目中时可能会遇到的问题及其解决方案,包括BIRT与EXT的集成、MDX语言的使用、参数传递、报表展示以及界面定制等关键点。 1. **将BIRT放到Web项目中** 在Web项目中整合BIRT,...

    BirtReport

    - 在`beforeOpen`脚本中,通过`reportContext.getParameterValue()`获取参数值,然后根据业务逻辑拼接SQL语句。 6. **报表Web页面汉化**: 要实现Birt报表Web界面的本地化,需要修改相关JSP文件,如`...

    birt调用java

    2. 对于多参数查询,BIRT允许在数据集的脚本中动态构造SQL查询语句。首先,创建数据集并定义所需的查询参数。然后,在数据集的`beforeOpen`事件中,通过`params[parameterName]`引用前端传递的参数。例如,检查参数`...

    代码审计Forfity常见扫描 漏洞原理与修复意见介绍

    代码审计Forfity常见扫描漏洞原理与修复意见介绍 代码审计是软件开发过程中的一种重要...* 使用安全的 SQL 语句,例如使用参数化查询来避免 SQL 注入。 * 对用户输入进行验证和限制,例如使用白名单来限制用户输入。

    oracle report基础

    例如,创建两个报表用户参数,然后在After Parameter Form触发器中根据条件拼接字符串,并将其应用到数据模型的SQL语句中。 **矩阵报表** Oracle Report中的矩阵报表可能让人感到陌生,实际上它类似于其他工具中的...

    报表源码(数据库得修改)自己研究

    描述中的“通过数据库数据拼接表格,实现报表的展示,可灵活配置”提示我们,这个项目可能使用了SQL查询来从数据库中提取数据,并在前端进行表格的构建。数据拼接是指将多个数据源的数据合并成一个统一的视图,这...

Global site tag (gtag.js) - Google Analytics