java中的接口是类吗
560
2022-09-03
解决mybatis #{}无法自动添加引号的错误
目录mybatis #{}无法自动添加引号解决mybatis #{}与${} 单引号解决办法验证
mybatis #{}无法自动添加引号
传入string类型时,无法自动添加引号,导致SQL将值识别为列名,导致SQL失败
解决
使用map类型代替string的传值
如
Map
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~