转:http://hi.baidu.com/wumin1314520/item/d1ad7519ffb1b327f7625c3a
最近项目中要用到mybatis,在google上当了个案例看了下。加入连接数据库等配置。由于实体对象属性太多,测试案例中没有一一完全写出来。
在对象的映射文件中
<select id="getMotoTransLogList" resultMap="MotoTransLogList">
SELECT * FROM MOTO_TRANS_LOG
</select>
参考案例中resultMap这里为resultType。结果页面上读取不到数据,开始没考虑到数据库查询结果返回和实体对象的映射关系。问题最终解决为从新定义一个resultMap,列出我需要的字段和对象属性。
在使用mybatis通过id查询时mybatis自动映射数据库字段和实体类,当数据库字段与实体类的属性不一致时,mybatis就不能映射了,那么可以通过下面的配置映射:
配置一个返回的Map:
<!-- 当实体类属性跟数据库字段不一致时映射结果集 -->
<resultMap type="Person" id="result_person">
<result property="name" column="t_name"/>
</resultMap>
查询的时候resultType改为resultMap
<select id="selectOne" parameterType="int" resultMap="result_person">
select * from t_person where id=#{id}
</select>
如果返回类型为resultType时,java对象的属性应和数据库表里的各字段保持一致,这样在查出结果后mybatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。