我们平时用mybatis,bean一般都是要和表内容相匹配的。

但是有时候java类和字段名不匹配,如何进行解决?

一、表结构

1

二、xml配置方法

(1)创建一个user类

(2)写出sql的映射文件mapper.xml

用了三种方法。

(3)在mybatis配置文件conf.xml中注册该mapper.xml

(4)写一个测试类

演示结果:

三个测试方法中,只有selectbyId1是无法进行获取的。其他两种方法都可以正常获取。

(5)分析

  1. 第一种方法显而易见是无法获取类的,因为实体类的属性名和数据库的字段名完全对不上,所以mybatis无法进行映射,自然无法进行获取。
  2. 第二种方法改写了sql语句,将查询的字段名都起一个和实体类属性名相同的别名,这样实体类的属性名和查询结果中的字段名就可以一一对应,mybatis可以完成映射。
  3. 第三种方法,通过<resultMap>映射实体类属性名和表的字段名一一对应关系,这样mybatis也可以完成映射。

三、使用注解的方式

(1)首先写一个接口类

这里的sql语句也是写入了别名。

(2)写一个实现方法

这样也可以实现。

四、总结

肯定要在SQL中解决。

发表评论

电子邮件地址不会被公开。 必填项已用*标注