在学Mybatis的时候都需要创建一个实体类,但创建实体类的变量必须和数据库的一样,这章就来解决这个有趣的问题
目录:
问题是这样:
输出的结果是:
password为空,这就很难受;
解决方法:
第一种:
改UserMapper.xml配置文件的SQL语句:
<mapper namespace="com.hdlf.dao.UserMapper"> <!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型--> <select id="getUser" resultType="com.hdlf.pojo.User"> SELECT id, name, pwd as password FROM mybatis.user where id = #{id} </select> </mapper>
这是最暴力的方法
第二种:
使用resultMap方法映射到实体类中:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能-->
<mapper namespace="com.hdlf.dao.UserMapper">
<!--结果集映射-->
<resultMap id="MapUser" type="User">
<!--column是数据库中的字段,property是实体类中的变量名-->
<result column="id" property="id"></result>
<result column="name" property="name"></result>
<result column="pwd" property="password"></result>
</resultMap>
<!--使用resultMap映射,resultMap就是上面resultMapd的id-->
<select id="getUser" resultMap="MapUser">
SELECT * FROM mybatis.user where id = #{id}
</select>
</mapper>
测试结果:
如果遇到这样的问题就用第二种方法吧。