setter命名重复 导致mybatis 使用实体类当参数时 会出错

我使用mybatis连接数据库,当写insert语句一直出错,但是不会报错,而是直接回滚

所以很难找到出错的地方 所以弄了很久 后来用log4 来打印sql语句 

 INSERT INTO my_order( NAME ) VALUES (?) 
打印出来参数没有传递进去

mapper里的配置如下

 <insert id="addOrder">
  INSERT INTO my_order( NAME ) VALUES (#{id})
  </insert>

我尝试换了一个实体类当参数,结果是可以

所以在原实体类里面找 最后发现这个

public void setDay(int day) {
        this.day = day;
    }

    public boolean isDay() {
        return isDay;
    }

    public void setDay(boolean day) {
        isDay = day;
    }

这是自动生成的 然后变量名是这样的

 private int day;//预定日期
    private boolean isDay;//预定的日场还是夜场
所以就是因为取名的时候用了is 但是生成的setter自动将is省去了 于是变成两个参数不同 名字相同的setter

所以mybatis不知道使用哪个setter

花了一个晚上的时间 结果因为命名出的问题 妈的 以后再也不用is当开头了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis是一款开源的持久化框架,可以简化Java应用程序与数据库之间的交互操作。在Mybatis中,mapper是用于定义数据库操作接口的一种方式。而实体类则是用于表示数据库中的表结构的Java类。 mapper接口是指定义了一系列数据库操作的方法,这些方法的实现由Mybatis框架自动生成。我们可以通过mapper接口中的方法完成数据库的增删改查等操作。 在使用mapper接口,我们需要创建一个与之对应的实体类实体类的属性与数据库表的列一一对应,通过实体类的对象可以方便地进行数据的传递和操作。 以一个用户表为例,假设该表包含了id、name和age字段。我们可以创建一个User实体类,类中包含了对应的属性和对应的getter和setter方法。在mapper接口中,我们定义了一些常用的数据库操作方法,比如根据id查询用户、添加用户、修改用户等。 使用Mybatis框架,我们可以通过注解或者XML配置文件的方式来完成mapper接口与实体类的映射关系。将数据操作的SQL语句定义在mapper接口的方法中,Mybatis框架根据这些方法来自动生成对应的SQL语句,并执行相应的数据库操作。 通过使用Mybatis的mapper实体类,我们可以更加方便地操作数据库,避免了手写SQL语句的繁琐。同,mapper实体类使用也提高了代码的可读性和可维护性,使得我们的开发工作更加便捷高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值