mybatis中投射文件的resultType和resultMap

mybatis中映射文件的resultType和resultMap

最近项目中要用到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所指定的对象对应的属性。