resultType和resultMap区别

发布时间 2023-03-23 16:48:41作者: 嗝`

ResultType

ResultType相对与ResultMap而言更简单一点。只有满足ORM(Object Relational Mapping,对象关系映射)时,即数据库表中的字段名和实体类中的属性完全一致时,才能使用,否则会出现数据不显示的情况。

resultMap

如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

<!-- 定义resultType  
将select id id_,username _username from user和User类中的属性做一个映射关系  
      
type:resultMap最终所映射的Java对象类型,可以使用别名  
id:对resultMap的唯一标识   
-->  
<resultMap type="user" id="userResultMap">  
    <!-- id表示查询结果集中唯一标识   
    column:查询出的列名  
    property:type所指定的POJO中的属性名  
    最终reslutMap对column和property做一个映射关系(对应关系)  
    -->  
    <id column="_id" property="id"/>  
    <!-- 对普通列的映射定义 -->  
    <result column="_username" property="username"/>  
</resultMap>  

总结

基本映射 :(resultType)使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。(数据库,实体,查询字段,,这些全部都得一一对应)

高级映射 :(resultMap) 如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。(高级映射,字段名称可以不一致,通过映射来实现)