在操作数据库的时候,要求属性名和字段名要相同,假如属性名和字段名不同,则会导致查出的数据为空
例如数据库中的字段名为pwd,而实体类中的属性名为password,那查出的结果肯定为null,所以需要进行处理
第一种方式
直接使用SQL语句直接进行处理,为不一致的字段起别名
比如这里数据库中是pwd,但是实体类中是password,所以将pwd取别名为password
<select id="getUserById" parameterType="int" resultType="com.robot.pojo.User">
select id, name, pwd as password from mybatis.user WHERE id = #{id}
</select>
第二种方式
使用结果集映射ResultMap
<select id="getUserById" resultMap="UserMap">
select id, name, pwd from mybatis.user WHERE id = #{id}
</select>
<resultMap id="UserMap" type="User">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="pwd" property="password"/>
</resultMap>
在上面的查询语句中使用resultMap,关联到下面的resultMap标签,值则为上面标签中id的值
- column:数据库中字段的名
- property:实体类中属性的名字
第三种方式
如果实体类中字段的定义满足驼峰命名规则,而数据库中的字段为符合驼峰命名规则的带下划线的字段,如
实体类字段: lastName
数据库字段: last_name
那么就可以在配置文件中启用驼峰转换