Mybatis操作数据时出现:java.sql.SQLSyntaxErrorException: Unknown column 'XXX' in 'field list'的问题解决

 更新时间:2023年04月19日 10:04:23   作者:Comet_Fei  
这篇文章主要介绍了Mybatis操作数据时出现:java.sql.SQLSyntaxErrorException: 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操作数据时出现:java.sql.SQLSyntaxErrorException: Unknown column 'XXX' in 'field list'的文章就介绍到这了,更多相关Mybatis出现:Unknown column 'xxx' in 'field list'内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java如何根据key值修改Hashmap中的value值

    Java如何根据key值修改Hashmap中的value值

    这篇文章主要介绍了Java如何根据key值修改Hashmap中的value值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • springMVC如何防止表单重复提交详解

    springMVC如何防止表单重复提交详解

    平时开发的项目中经常会遇到表单重复提交,造成数据重复,增加服务器负载,严重甚至会造成服务器宕机,因此有效防止表单重复提交有一定的必要性,这篇文章主要给大家介绍了关于springMVC如何防止表单重复提交的相关资料,需要的朋友可以参考下
    2021-11-11
  • java后端请求过滤options方式

    java后端请求过滤options方式

    Optional项是一个容器对象,它可以包含非空值,也可以不包含非空值,它用于表示没有值,而不是使用 null,引入Optional项是为了帮助开发人员编写更简洁、更具表现力的代码,并避免 NullPointerException
    2024-01-01
  • java实现代码统计小程序

    java实现代码统计小程序

    这篇文章主要为大家详细介绍了java实现代码统计小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Spring boot搭建邮件服务的完整步骤

    Spring boot搭建邮件服务的完整步骤

    这篇文章主要给大家介绍了关于Spring boot搭建邮件服务的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 如何解决java.util.concurrent.CancellationException问题

    如何解决java.util.concurrent.CancellationException问题

    这篇文章主要介绍了如何解决java.util.concurrent.CancellationException问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 深入理解Java中的克隆

    深入理解Java中的克隆

    想必大家对克隆都有耳闻,世界上第一只克隆羊多莉就是利用细胞核移植技术将哺乳动物的成年体细胞培育出新个体,甚为神奇。其实在Java中也存在克隆的概念,即实现对象的复制。本文将尝试介绍一些关于Java中的克隆和一些深入的问题,希望可以帮助大家更好地了解克隆。
    2016-08-08
  • 解决spring mvc 多数据源切换,不支持事务控制的问题

    解决spring mvc 多数据源切换,不支持事务控制的问题

    下面小编就为大家带来一篇解决spring mvc 多数据源切换,不支持事务控制的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • RabbitMQ使用案例详解

    RabbitMQ使用案例详解

    RabbitMQ是基于Erlang语言开发的开源的消息中间件,这篇文章给大家介绍RabbitMQ使用案例,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • 浅谈Java随机数的原理、伪随机和优化

    浅谈Java随机数的原理、伪随机和优化

    这篇文章主要介绍了浅谈Java随机数的原理、伪随机和优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01

最新评论