这篇文章主要介绍了Mybatis操作数据时出现Unknown column 'XXX' in 'field list&报错怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis操作数据时出现Unknown column 'XXX' in 'field list&报错怎么解决文章都会有所收获,下面我们一起来看看吧。
这个错误比较重要,而且很常见,故单独进行说明:
Mybatis出现:Unknown column 'xxx' in 'field list'
先来看一下程序的内部:
dao.addUser("ll111", "ll11");// 添加用户l main函数测试
//添加用户 成功1 失败0 public int addUser(String userPhoneNumber, String userPassword) throws IOException { //用户的 手机号,姓名(默认手机号),密码 User user = new User(userPhoneNumber, userPhoneNumber, userPassword); int result = mapper.addUser(user); System.out.println(result); sqlSession.commit(); return result; }
<!-- 添加用户--> <insert id="addUser" parameterType="main.pojo.User"> INSERT INTO user(user_phone_number, user_name, user_password) VALUES (${userPhoneNumber}, ${userName}, '${userPassword}'); </insert>
错误原因:本身来说,三个字段都属于String类型,但是在使用Mybatis时由于用法的错误,致使出现上图的结果,即本来手机号和名字想作为字符串插入,但是xml里却当成了字段名。如果是整数还好,String可以解析整数并且转化为字符串,但是像字母和数字混合,编译器就无法识别。
本质上来说,是Mybatis使用上的错误,不熟悉,理解其实现机理所致。同样的问题,也会出现在其他语句中,所以在实现时注意数据传输的类型!!!
解决方法:也如上图xml代码所示,password的变量使用单引号括住,即可表示为字符串,所以实际上,应该这样写:
<!-- 添加用户--> <insert id="addUser" parameterType="main.pojo.User"> INSERT INTO user(user_phone_number, user_name, user_password) VALUES ('${userPhoneNumber}', '${userName}', '${userPassword}'); </insert>
或者进行参数化表示:
<insert id="addUser" parameterType="main.pojo.User"> INSERT INTO user(user_phone_number, user_name, user_password) VALUES (#{userPhoneNumber}, #{userName}, #{userPassword}); </insert>
这种情况下,VALUES内容为VALUES(?,?,?) ,数据传入时自动进行数据类型识别并填充,则没有以上报错。
关于“Mybatis操作数据时出现Unknown column 'XXX' in 'field list&报错怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Mybatis操作数据时出现Unknown column 'XXX' in 'field list&报错怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。