美文网首页
根据前台传值的数量动态插入?,?..

根据前台传值的数量动态插入?,?..

作者: 悠悠神代不曾闻 | 来源:发表于2017-01-25 16:55 被阅读13次

用到的地方比较多,所以写成了一个方法放进了工具类

    /**
     * pretreatmentConditions(): 为查询条件进行预处理,防止SQL注入
     * 使用场景: 字段 in(?,?,?..)
     */
    public List<Object> pretreatmentConditions(String dept) {
        List<Object> paraList = new ArrayList<Object>();
        List<Object> list = new ArrayList<Object>();
        StringBuilder tempBuilder = new StringBuilder();
        String[] value = dept.split(",");
        for (int i = 0; i < value.length; i++) {
            tempBuilder.append("?,");
            paraList.add(value[i]);
        }
        //上面的for循环结束后最后会多一个逗号,所以在这里手动加入一个'x',因为要查的字段里面没有x,所以不影响结果
        tempBuilder.append("\'x\'");
        list.add(tempBuilder);
        list.add(paraList);
        return list;
    }

在implement中调用方法pretreatmentConditions()

public int test(Map<String, Object> map) {
    List<Object> paraList = new ArrayList<Object>();
    List<Object> deptList = sUtil.pretreatmentConditions(department);
    String deptSql = deptList.get(0).toString();
    List<Map<String, Object>> tempList = (List<Map<String, Object>>) deptList.get(1);

sql语句的结尾处加上查询条件

一段sql......
if (!department.isEmpty()) {
            builder.append("\n                    and to_char(s.dept) in(")
                        .append(deptSql).append(")");
                paraList.addAll(tempList);
        }
return getJdbcTemplate().queryForInt(builder.toString(), paraList.toArray());

相关文章

  • 根据前台传值的数量动态插入?,?..

    用到的地方比较多,所以写成了一个方法放进了工具类 在implement中调用方法pretreatmentCondi...

  • angualr JS跳转GET传值

    一:什么是动态传值与get传值? 在这要区分一个概念:动态传值与get传值。angualr的动态传值如下,当我点击...

  • vue动态路由传值和get传值

    1、动态路由传值2、get传值 不同路由传值:动态路由 1、配置动态路由,main.js 2、在列表页NewsLi...

  • vue中父子组件传值(通俗易懂)

    1.父子组件传值 首先我要说的是父组件如何向子组件传值传的值分为静态值和动态值 1.传静态值 2.传动态值 当然,...

  • Ajax无动态刷新搜索功能

    一,首先先讲前台的传值,因为要用到无动态刷新页面,所以不得不说一说ajax。ajax的无动态刷新真的好用 1,首先...

  • 父子组件的传值

    一,父组件向子组件传值 1⃣️,静态的传值props 2⃣️,动态的传值props 要动态地绑定父组件的数据到子模...

  • vue element-ui列表中el-switch 开关,使用

    需求说明 1、根据后台传值动态显示开关(0为关,1为开) 在 :active-value="1" :inactiv...

  • this.setData赋值不成功的原因之一

    父页面根据成功与否传值不同的值到子页面:成功传值:status=1, orderData={对象}失败传值:sta...

  • DQL

    SELECT *FROM BB;基础查询语句插入字段可以不传值的情况:1、自增的字段可以不传值;2、有默认值;3、...

  • Element UI中swich(开关)在表格中的使用

    需求说明 根据后台传值动态显示开关(0为关,1为开) 对开关进行操作时请求后台,需要传两个参数:ID,Status...

网友评论

      本文标题:根据前台传值的数量动态插入?,?..

      本文链接:https://www.haomeiwen.com/subject/asotittx.html