<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
分享到:
相关推荐
springboot mybatis mapper.xml 配置,里面包含了新增,修改,删除,查询,分页查询例子以及通过 网页访问的例子
Mybatis在Mapper.xml文件中对大于、小于、大于等于、小于等于等符号进行转义字符处理的几种方式
本文详细介绍了在Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式,以及如何实现的案列,同时#和$传参的区别。
idea工具中直接从mapper.Java文件中跳转到mapper.xml文件的插件,挺不错的
Mybatis Mapper.xml中字符串形式传参,逗号分隔 AND中拼接OR。
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接口类...
只要在JAVA开发环境下都能逆向生成mapper.xml和mapper.java文件,不论开发工具
最简单的springboot + mybatis +mapper.xml 配置项目 简单配置java spring boot项目
ssm自动生成基本的mapper.xml文件与对应的借口类,model类
mybatis使用虽然灵活简单,但mapper.xml的配置却很繁琐。如果项目的实体表比较多,手工配置是不现实的。这个工具可以帮助自动后成model,dao,mapper.xml 使开发者从繁琐的mapper.xml映射中解放出来,把更多的精力投入...
mybatis【mapper.xml类提示eclipse插件】【正式版下载】 可以在mybatis的mapper.xml中有class类等其他元素的自动补全,自动提示功能,可以大大提高开发效率,很好用的插件
解压后先修改generator.xml相关信息,然后用cmd命令行使用,内有详细操作说明
主表和副表一对多通过主表mapper封装直接返回需要数据,里面有主表xml、主表实体类、副表实体类、dao层
解压到E盘下,修改generatorConfig.xml配置文件 适用于MYSQL,然后增加或修改要生成的表名 执行start.bat
mapper.xml文件
逆向工程生成entity,mapper,mapper.xml
springboot整合mybatis,自动生成mapper.xml文件以及dao和model
mybatis-generator自动生成mapper.xml项目压缩包打开即用
代码生成器(mp)生成mapper.xml,mapper,service,controller