问答详情
源自:2-6 列表查询

为什么不把参数直接写到sql中呢

为什么不把参数直接写到sql呢,每次执行的时候参数不都是能确定下来的么,也就是说条件要拼接那一部分是能确定的啊??

提问者:忽职守 2017-11-08 13:43

个回答

  • Sean_Chou
    2017-12-25 18:58:44

    StringBuilder prepareSql = new StringBuilder("SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM message WHERE 1=1"); //不要使用SELECT *,数据库引擎还要去解析列名,效率会低
    if(command != null && !"".equals(command.trim())){//如果传入的参数存在并且不为空字符串
        prepareSql.append(" AND COMMAND='"+command+"'");
    }
    if(description != null && !"".equals(description.trim())){
        prepareSql.append(" AND DESCRIPTION LIKE '%"+description+"%'");
    }

    可以使用,我就是这样用的,是没问题的。

    目前还没看出来这两种方式孰优孰劣,只不过只要涉及到SQL语句的拼接都得小心谨慎。

  • 汪小涛
    2017-11-17 11:13:13

    1. 首先展示列表的时候不需要参数

    2. 添加动态参数也是为了一个方法可以实现全部列表和查询列表

  • 山高不妨彩云飞
    2017-11-09 20:51:16

    动态传参