解决mybatis #{}无法自动添加引号的错误

网友投稿 560 2022-09-03


解决mybatis #{}无法自动添加引号的错误

目录mybatis #{}无法自动添加引号解决mybatis #{}与${} 单引号解决办法验证

mybatis #{}无法自动添加引号

传入string类型时,无法自动添加引号,导致SQL将值识别为列名,导致SQL失败

解决

使用map类型代替string的传值

Map map = new HashMap<>(2);

map.put("userName", userName);

return userMapper.selectUserByName(map);

select

user_id as userId,

user_name as userName,

user_password as userPassword,

user_level as userLevel,

ushttp://er_gmt_create as userGmtCreate,

user_gmt_modified as userGmtModified

from user

where user_name = #{userName}

mybatis #{}与${} 单引号

今天使用mybitas查询数据库时候报了错

提示不知道的列,查看上方的sql语句,发现sql的语法错了,where查询的条件的值少了单引号

-- 错误提示

select `uid`, `username`, `password`, `time`

from blogs_user

where username = wu;

-- 正确的sql语句

select `uid`, `username`, `password`, `time`

from blhttp://ogs_user

where username = 'wu';

这时问题就很明显了,就是字符串在sql中需要用单引号引起来,而报错的提示信息中是没有这个单引号的

解决办法

解决办法是将对应的映射文件中的${user.username} 改为 #{user.username},再次运行即可

select

from blogs_user

where username = ${user.username};

select

from blogs_user

where username = ${user.username};

验证

如果要验证是否正确,思路是将成的sql 语句打印出来,因此需要在mybatis-config.xml中加入VmnFxTjq

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

VmnFxTjq "http://mybatis.org/dtd/mybatis-3-config.dtd">

....

....

.....

重http://新运行程序

使用 ${user.username}

使用 #{user.username}

验证正确!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python爬虫的正则表达式(re模块)
下一篇:python中正则表达式re模块的应用案例(python re正则匹配)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~