`

resultMap属性

 
阅读更多

参考:http://blog.csdn.net/u012702547/article/details/54599132

1、resultType+resultMap:在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。当提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,因为Map不能很好表示领域模型,我们就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。(注意,配置用哪个跟返回的是单个对象还是多个对象没关系)

 

<resultMap  id="userResultMap" type="User">  
    <id property="id" column="ID" jdbcType="NUMERIC" javaType="java.lang.Long"/>  
    <result property="loginName" column="LOGIN_NAME" jdbcType="VARCHAR" javaType="java.lang.String"/>  
    <result property="password" column="password" jdbcType="VARCHAR" javaType="java.lang.String"/>  
    <result property="roleId" column="role_id" jdbcType="NUMERIC" javaType="java.lang.Long"/>  
    <association property="role" column="role_id" javaType="Role" select="selectRole"/>  
</resultMap>  
//resultMap需要规定好key的名字
<select id="selectUser" parameterType="java.lang.Long" resultMap="userResultMap" >     
    select * from User where id =#{id}     
</select>   
  
//resultType是一个pojo类型
<select id="selectRole" parameterType="java.lang.Long" resultType="Role" >     
    select * from Role where id =#{id}     
</select> 
 

 

 2、parameterType:可以传的值有基本类型、pojo对象、Map。或者不需要配置。

//有parameterType时,参数可以配map、基本类型、pojo对象等。
  <select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">  
       select * from Teacher where c_id=#{id} and sex=#{sex} 
  </select> 
//没有parameterType时,可用#{0}、或传map、或代码中用@Param("companyId")
  <select id="selectTeacher" resultType="com.myapp.domain.Teacher">  
       select * from Teacher where c_id=#{0} and sex=#{1} 
  </select> 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    idea mabatis 插件

    提供Mapper接口与配置文件中对应SQL的导航 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件及SQL标签 ResultMap中的property支持自动补全,支持级联(属性A....自动生成ResultMap属性

    IntelliJ 的插件 mybatis plugins-3.55

    提供Mapper接口与配置文件中对应SQL的导航 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件及SQL标签 ...自动生成ResultMap属性 快捷键: Option + Enter(Mac) | Alt + Enter(Windows)

    MybatisPlugin2.73(可直接使用,你懂得)

    支持IntelliJ Idea版本 2016.1 提供Mapper接口与配置文件中对应SQL的导航 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件...自动生成ResultMap属性 快捷键: Option + Enter(Mac) | Alt + Enter(Windows)

    MybatisX-idea.0.1.0.jar

    使用:settings -&gt; plugins -&gt; install plugins from disk.. enjoy it! ... Intellij Idea Mybatis插件主要功能: ... 自动生成ResultMap属性 快捷键: Option + Enter(Mac) | Alt + Enter(Windows)

    MybatisX-idea.0.1.0.jarMapper找到XML

    使用:settings -&gt; plugins -&gt; install plugins from disk.. enjoy it! ... Intellij Idea Mybatis插件主要功能: ... 自动生成ResultMap属性 快捷键: Option + Enter(Mac) | Alt + Enter(Windows)

    MyBatis的resultMap详解

    在 MyBatis 中,每一个查询映射的返回类型都是 ResultMap,只是当我们提供的返回类型属性是 resultType 时,MyBatis 会自动将 Map 中的键值对赋给 resultType 所指定的对象对应的属性,而当我们提供的返回类型是 ...

    IntelliJ IDEA2018安装mybatis_plus插件

    根据实体类结构,插件能够自动生成相应的ResultMap属性,进一步减轻开发者的负担。 综上所述,Mybatis_Plus插件不仅极大地提升了开发效率,还通过一系列实用的功能帮助开发者更好地管理数据库相关的代码。无论是...

    mybatis教程之resultmap_动力节点Java学院整理

    ResultMap 属性: * type:Java 实体类 * id:ResultMap 的标识 ResultMap 可以设置的映射: 1. constructor - 用来将结果反射给一个实例化好的类的构造器 * idArg - ID 参数,将结果集标记为 ID,以方便全局...

    sqlmap配置.pdf

    返回值参数类型是指在 SqlMap 中定义的 resultClass 或 resultMap 属性。例如:&lt;select id="getById" resultClass="Account"&gt;...&lt;/select&gt; 或者:&lt;select id="getById" resultMap="AccountResult"&gt;...。返回值参数...

    Mybatis resultMap

    ResultMap 的工作原理是通过定义字段到对象属性的映射规则,使得Mybatis能够将SQL查询的结果集自动转换为Java对象。在没有ResultMap的情况下,Mybatis默认会尝试将数据库列名与Java字段名进行简单的匹配,但这往往...

    mybatis3--4.resultMap高级映射

    ResultMap则可以解决这些问题,它允许我们指定列名与属性名的映射规则,甚至处理一对一、一对多、多对多等关联关系。 ResultMap的基本结构: 一个ResultMap由多个result元素组成,每个result元素表示一个字段的映射...

    mybatis-demo4-resultMap手动映射.zip

    在MyBatis中,ResultMap是核心配置之一,它用于定义如何将数据库查询结果映射到Java对象。ResultMap的概念是为了提高数据映射的灵活性和效率,避免了简单类型的数据映射过程中的冗余代码。在`mybatis-demo4-...

    ibatis学习文档

    通过resultMap属性,开发者可以精确控制列与属性的对应,确保数据准确无误地转换为应用程序可理解的对象格式。值得注意的是,即使没有定义resultMap,iBATIS也会尝试自动匹配列名与属性名,但这并不保证所有列都能被...

    根据MyBatis的ResultMap生成增删改sql

    在ResultMap中,你可以定义列名与Java属性之间的对应关系,以及如何处理复杂的关联关系。例如,通过`&lt;id&gt;`、`&lt;result&gt;`、`&lt;association&gt;`、`&lt;collection&gt;`等标签来配置。 1. **插入(Insert)SQL**:在MyBatis中,...

    MyBatis_sql-resultMap-缓存

    `resultMap`主要用于解决复杂结果集的映射问题,它可以指定字段与Java对象属性的对应关系,支持一对一、一对多、多对一等关联映射。在XML配置文件中,你可以定义多个`resultMap`,每个`resultMap`代表一种映射规则。...

    spring_mybatis.rar

    XML文件中的id属性值应与接口方法名一致,resultType或resultMap属性表示返回结果的Java类型。 5. **Service层设计**:创建Service接口和实现类,Service接口定义业务逻辑,实现类则调用Mapper接口进行数据库操作。...

    mybatis学习笔记

    这可以通过resultType或resultMap属性完成。其中,resultType适用于简单结果集的映射,而resultMap则更加灵活,适用于复杂结果集的映射。 #### 七、动态SQL - **概念**:MyBatis提供了强大的动态SQL功能,允许...

    ibatis教程_查询指定id的单个对象

    标签内可以设置id属性,对应Mapper接口中的方法名,resultType或resultMap属性则定义返回结果的类型或者映射关系。 ```xml SELECT * FROM users WHERE id = #{id} ``` 在Java代码中,你可以通过SqlSession对象...

    idea安装mybatis_plugin插件教程

    mybatis_plugin是啥? 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件及SQL标签 ResultMap中的property支持自动补全,...自动生成ResultMap属性 快捷键: Option + Enter(Mac) | Alt + Enter(Windows)

    Mybatis高级-resultMap之collection聚集

    ### Mybatis高级-resultMap之collection聚集 在MyBatis中,`collection`元素主要用于处理一对多的关系映射问题。本文将通过一个具体的示例来详细解释如何利用MyBatis的`collection`元素来实现一对多的数据关联。 #...

Global site tag (gtag.js) - Google Analytics