标签:
【resultMap】
如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间做一个映射列表。
1.定义resultMap,(在UserMapper.xml文件中)
<!-- 定义resultMap 将SELECT id _id,username _username,birthday _birthday,address _address和User类中的属性做一个映射 type: resultType最终映射的java对象类型,可以使用别名 id:对resultMap的唯一标示 --> <resultMap type="user" id="userResultMap"> <!-- id:表示查询结果集中唯一标识 column:查询出来的列名 property:type指定的pojo类型中的属性名 --> <id column="id_" property="id"/> <!-- result:对普通列名称的映射定义 --> <result column="_username" property="username"/> <result column="_birthday" property="birthday"/> <result column="_address" property="address"/> </resultMap>
2.使用resultMap作为statement的输出映射(该案例在UserMap.xml中,后面也不一定在同一个xml文件中,不在同一个文件中是要加namespace)
<select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap"> SELECT id _id,username _username,birthday _birthday,address _address from USER WHERE id=#{id} </select>
【不要忘了UserMapper接口中对应的方法】
【测试代码】
@Test public void testFindUserByIdResultMap() throws Exception { SqlSession sqlSession =sqlSessionFactory.openSession(); //创建一个UserMapper对象,Mybatis自动生成mapper代理对象 UserMapper userMapper=sqlSession.getMapper(UserMapper.class); //调用userMapper的方法 User user = userMapper.findUserByIdResultMap(3); System.out.println(user.toString()); }
【运行结果】
标签:
原文地址:http://www.cnblogs.com/HigginCui/p/5747844.html