欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MyBatis中表中字段名和实体类中属性名不同的解决办法

程序员文章站 2022-05-29 13:15:00
...

应对实体类和表中列名不相对的方法:
首先在Windows系统下,MySql不区分大小写,所有username和userName是相同的
但是只要实体类和表中数据列名有一个字母除大小写外不相同,那么就封装不进数据
MyBatis中表中字段名和实体类中属性名不同的解决办法

解决方法:
1.在sql层面进行解决。直接使用as起别名
MyBatis中表中字段名和实体类中属性名不同的解决办法
MyBatis中表中字段名和实体类中属性名不同的解决办法

2.第二种是在映射文件中写resultMap标签进行对应。
MyBatis中表中字段名和实体类中属性名不同的解决办法
id用于指定调用对应resultMap的唯一标识,type用于指定对应的实体类
下面的标签用于指定对应主键,就是用于指定实体类和表中对应的字段,调用时,指定封住的属性由parameterType换成resultMap

指定别名的方法提高了运行效率,但是编写resultMap提高了开发效率,因为resultMap可以复用,不像写别名一样,每次都需要重新指定。
这里吧resultMap的源码贴上,有需要的自取,我这是从我的笔记中copy的,图片都是二次截图,所有有的地方不好看,多担待吧。

<resultMap id="userMap" type="com.qst.pojo.User">
<id property="userId" column="id"></id>
<result property="userName" column="username"/>
<result property="userDirthday" column="birthday"/>
<result property="userSex" column="sex"/>
<result property="userAddress" column="address"/>
</resultMap>
<select id="findAll" resultMap="userMap" > 
select * from user;
</select>