<mapper namespace="xxx.UserMapper">
<--命名空间的值不能随便取,必须和已经创建的UserMapper接口路径一致 -->
//这两段代码就是resultMapper使用核心,resultMap 中的type代表最终的映射对象,也就是我们定义的那么工具类,后面跟着的id值是可以随便命名的,一般这样命名userRM(RM就是resultMapper),他的作用作为resultMapper的唯一标识,<result column>中的column是SQL查询的列名,如果列有别名,那么此处的值应该写别名,property后面的属性值为我们工具类中所对应的值。这里要指出的是,只有数据库列名和工具类中的属性名对应上才能查到数据。
<resultMap type="XXX.User" id="a">
<id column="id_" property="id"/>
<result column="username_" property="username"/>
<result column="sex_" property="sex"/>
</resultMap>
//<select id="" parameterType="" resultMap="">这三个属性很好理解,这里就是实现了我们使用代理时需要遵守的规范,id名和我们接口的方法名相同,parameterType值为接口中的传入数据类型,resultMap可以理解为返回的数据类型,它的值和我们上面<resultMap type="" id="">中的id值相对应,最后就是纯sql语句的查询了,没有返回值就不用制定了。
<select id="findUserByIdResultMap" parameterType="int" resultMap="a">
SELECT id id_,username username_,sex sex_ FROM USER WHERE id = #{id}
</select>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 在sql映射文件中,Mybatis中namespace终于派上用场,它使得映射文件和接口之间的绑定变的非常自然。 在iBatis中namespace不是必须的 -->
<mapper namespace="com.test.dao.NarCodeMapper">
<resultMap id="BaseResultMap" type="narCode">
<!-- property是实体类属性,column是表列名 -->
<id property="id" column="id" jdbcType="VARCHAR" />
<result property="cnt" column="cnt" jdbcType="VARCHAR" />
<result property="parentid" column="parentid"jdbcType="VARCHAR" />
<result property="dlevel" column="dlevel" jdbcType="VARCHAR" />
</resultMap>
<!-- 返回单个实例-->
<select id="getNarCode" parameterType="java.lang.String"
resultType="narCode">
select a.id,a.cnt,a.parentid,a.dlevel from nar_code a
where a.id = #{id,jdbcType=VARCHAR}
</select>
<!-- resultType非常适合返回jdk的提供的类型 -->
<select id="getNarCodeCount"
resultType="java.lang.Integer">
select count(*) from nar_code a
</select>
<!-- 返回List集合-->
<select id="getNarCodeList" resultType="BaseResultMap">
select a.id,a.cnt,a.parentid,a.dlevel from nar_code a
</select>
</mapper>
1.当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis会自动把对应的值赋给resultType所指定对象的属性。
2.当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。
转载于:https://my.oschina.net/u/3043570/blog/2243875
分享到:
相关推荐
在Mybatis框架中,Mapper.xml文件是定义SQL映射的关键组件,它允许开发者编写SQL语句并执行数据库操作。然而,在XML中直接使用一些特殊字符,比如大于(>)、小于(<)、等于(=)、单引号(')和双引号(")等,...
在Spring Boot集成MyBatis的过程中,`mapper.xml`配置文件起着至关重要的作用。它用于定义SQL语句,实现数据库的CRUD操作。本示例将深入探讨如何配置`mapper.xml`,并提供新增、修改、删除、查询及分页查询的实践...
本文将详细讲解如何使用Java程序生成Mybatis的mapper.xml和mapper.java文件,以便于简化开发过程,提高代码的可维护性和效率。 首先,理解mapper.xml和mapper.java的作用是关键。mapper.xml文件是Mybatis中的SQL...
本文将详细解析"mybatis联表查询mapper.xml"这一主题,包括如何在Mapper XML文件中实现主表与副表的一对多关联查询,以及涉及的实体类和DAO层的设计。 首先,我们要理解MyBatis中的Mapper接口和Mapper XML文件的...
在大型项目中,手动编写Model、Mapper接口和mapper.xml文件会非常耗时。为了提高开发效率,Mybatis 提供了一个工具——Mybatis Generator,它可以自动生成这些必要的文件。 在您提供的压缩包中,`generatorConfig....
标题和描述所提及的问题是关于如何在Mapper.xml文件中处理字符串形式的参数,这些参数由逗号分隔,并在`AND`语句中拼接`OR`子句来实现动态查询。这种场景在处理用户多选过滤条件时非常常见,比如在一个搜索框中,...
Spring Boot + MyBatis + Mapper.xml 项目是一个基础但实用的Java Web开发框架组合,它大大简化了传统Spring项目的配置和启动过程。本项目利用Spring Boot的自动配置特性,配合MyBatis作为持久层框架,以及Mapper....
mapper.xml , 实体类 ,mapper自动化工具mybatis-generator 内涵 :generatorConfig.xml mybatis-3.0.4.jar mybatis-generator-core-1.3.0.jar mysql-connector-java-5.1.16.jar start.bat自动化脚本
-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪个工程下面 --> <!-- 生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类...
IDEA的这款插件通过解析Java代码中的注解和类结构,自动关联Mapper接口与Mapper XML文件,使得开发者只需在Mapper Java文件中右键点击方法,就能快速打开相应的Mapper XML。这种方式极大地简化了开发者的操作步骤,...
mybatis使用虽然灵活简单,但mapper.xml的配置却很繁琐。如果项目的实体表比较多,手工配置是不现实的。这个工具可以帮助自动后成model,dao,mapper.xml 使开发者从繁琐的mapper.xml映射中解放出来,把更多的精力投入...
本文将深入探讨如何在SpringBoot项目中整合MyBatis,并实现自动生成Mapper.xml文件、DAO接口以及对应的Model类。 首先,我们需要确保项目已经集成了SpringBoot和MyBatis的基础配置。这通常涉及以下步骤: 1. 添加...
"mybatis自动生成Mapper.xml,entity,dao"是MyBatis的一个实用功能,可以帮助开发者自动根据数据库表结构生成对应的Java实体类(Entity)、XML映射文件(Mapper.xml)和数据访问对象(DAO)类,极大地提高了开发效率...
在开发过程中,通常需要手动创建实体类(Entity)、DAO(Data Access Object)接口以及对应的mapper.xml文件来实现数据访问。然而,为了提高开发效率,Mybatis提供了一个工具——Mybatis Generator,能够自动化生成...
基于PDM,开发者可以自动生成各种代码,如Bean、DAO(Data Access Object)、Service以及Mapper XML文件等。这大大提高了开发效率,减少了手动编写重复代码的时间。 1. **PDM(Project Data Model)** PDM是设计...
在SSM项目中,经常需要编写大量的Mapper接口、DAO实现类以及对应的mapper.xml文件来处理数据库操作。然而,手动创建这些文件既耗时又容易出错。幸运的是,MyBatis提供了一个工具——MyBatis Generator(MBG),可以...
3. **编写Mapper代码**:如"morphline-hbase-mapper.xml"所示,配置Mapper以读取HBase表,使用Morphlines处理数据,并将结果发送到Solr。 4. **运行MapReduce作业**:使用这个配置启动一个MapReduce作业,该作业...
mapper.xml文件
接下来我们将深入探讨MyBatis如何通过接口查找对应的mapper.xml文件以及执行具体的方法。 首先,当我们使用`SqlSession.getMapper()`方法来获取一个Mapper接口的实例时,例如`BookMapper bookMapper = SqlSession()...
在Java Web开发中,Mapper.xml、Mapper接口、Service以及Controller是四个关键组成部分,下面将分别详细阐述这些组件的作用和它们如何通过代码生成器进行生成。 1. **Mapper.xml**:这是MyBatis的核心部分,用于...