在属性名和列名不一致的情况下,mybatis中可以怎么处理

在java中,在我们写一个java文件定义用户的属性时,有可能会出现用户定义的属性名和实际的列名不一致的问题,这时候,当我们操作一些数据的时候,就会出现一些错误,例如:当我们测试查询数据时,并不会报错,但是就是数据为空,而且数据库中也是有数据的,但就是查询出来为null;项目很大,数据很多时,我们显然不能通过再修改属性名来修改错误了,我们有另外两种方式取解决这个问题;

  private Integer id;
    //模拟属性名与列名不一致的情况下;
    private String studentName;
    private Integer classid;
    private Integer version;

实际的列名:name属性名被改为studentName了;

当我们测试查询数据时,并不会报错,但是就是数据为空,而且数据库中也是有数据的,但就是查询出来null;

下面,有两种方式解决这个问题;

①重写属性名和列名不一致的属性的set方法;

 public void setName(String name) {
        this.studentName = name;
    }

测试结果:

②在mapper配置文件中,给name取别名,以适配器student类中的studentName属性,这种方法比较常见,也比较实用;

测试结果:

也是ok的;

猜你喜欢

转载自www.cnblogs.com/xie-qi/p/12901027.html