本文主要是介绍关于Mybatis中实体类属性名与数据库中字段名,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在使用Mybatis来持久化数据库时,有时候会碰到数据库中表中的字段与java实体类中属性名不一致的情况,在这种情况下Mybatis是不能完成字段的自动映射的。而通常情况下,数据库及实体类是不应该被改的的。所以要在不改变数据库以及实体类的情况下解决这个问题,下面是解决该问题的三种方式:
1.既然是因为名字不一致而导致Mybatis不能完成自动映射,那么就可以将两者的名字想办法保持一致,为查询出的数据库字段起个别名就可以,实例如下:
java实体类:
public class User
{private Long id;private String userName;private String passWord;/*** ...* get,set方法不再列出* ...* */
}
<select id="selectUserById" resultType="User">select id,user_name as userName,<!--不用在意大小写,Mybatis会先转换成大写再进行匹配 -->user_password as userPassword,from userwhere id = #{id}
</select>
2.另一种解决名字不一致的方式是事先指定映射关系,这样Mybatis也能自动完成映射。Mybatis提供了resultMap可以指定映射关系,示例如下:
<resultMap type="User" id="UserResultMap"><id column="id" property="id"/><result column="user_name" property="userName"/><result column="user_password" property="userPassword"/>
</resultMap><select id="selectUserById" resultMap="UserResultMap">select id,user_name,user_password,from userwhere id = #{id}
</select>
这篇关于关于Mybatis中实体类属性名与数据库中字段名的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!