• Parameter index out of range (1 > number of parameters, which is 0).


    一、报错信息

    Parameter index out of range (1 > number of parameters, which is 0).

    二、出现原因

    在进行like模糊查询时,我将字符串拼接在了sql语句上,'%#{param}%'

    三、解决问题

    方法一,#不支持拼串,但是$支持,但这样改极其危险,一定要分情况,少数情况可以这么做,总体不建议。

    方法二,使用<bind>标签拼串

    四、思考总结

    select * from user_inf where id=${id} and username=#{username} 为例,讲解 #,$ 的使用详情

    控制台输入

    Preparing: select * from user_inf  where id=1 and username=?
    区别:
    #{}:是以预编译的形式,将参数设置到sql语句中;PreparedStatement;防止sql注入
    ${}:取出的值直接拼装在sql语句中;会有安全问题;
    大多情况下,我们去参数的值都应该去使用#{};

    原生jdbc不支持占位符的地方我们就可以使用${}进行取值
    比如分表、排序。。。;按照年份分表拆分
    select * from ${year}_salary where xxx;
    select * from user_inf order by ${_name} ${order}

  • 相关阅读:
    md笔记——HTTP知识
    百万表格难题
    微信接口改良
    md笔记——正则学习
    md笔记——编程术语
    md笔记——微信JS接口
    md笔记——使用 @font-face 引入你喜欢的字体
    博客一年记
    “挨踢”的伙食怎样?
    比尔·盖茨早年
  • 原文地址:https://www.cnblogs.com/peanut-zh/p/13991996.html
Copyright © 2020-2023  润新知