<?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">
<!--namespace:命名空间名是唯一的,规则:所在包名+当前配置文件名称 -->
<mapper namespace="cn.hd.model.userMapper">
<resultMap type="userbean" id="baseMap">
<id column="userid" property="userid"/>
<result column="name" property="username"/>
</resultMap>
<select id="queryAll" resultMap="baseMap">
select userid , username as name from t_user
</select>
<select id="queryAll1" resultType="userbean">
select userid,username,realname,t2.name as depname
from t_user t1
left join t_data t2 on t1.did=t2.id
</select>
<!-- 多对一配置的第一种方式:没有延迟加载机制,association -->
<resultMap type="userbean" id="baseMap1">
<id column="userid" property="userid"/>
<result column="username" property="username"/>
<association property="data" javaType="cn.hd.model.Databean" >
<id column="depid" property="id"/>
<result column="depname" property="name"/>
<result column="pid" property="pid"/>
</association>
</resultMap>
<select id="queryAll2" resultMap="baseMap1">
select userid,username,realname,t2.pid as pid ,t2.id as depid, t2.name as depname
from t_user t1
left join t_data t2 on t1.did=t2.id
</select>
<!-- 多对一配置的第二种方式:延迟加载机制,会产生n+1问题 -->
<resultMap type="userbean" id="many2oneMap">
<id column="userid" property="userid"/>
<result column="username" property="username"/>
<association fetchType="lazy" property="data" javaType="databean" select="findDataById" column="did">
</association>
</resultMap>
<select id="findDataById" parameterType="int" resultType="databean">
select * from t_data where id=#{v}
</select>
<select id="many2oneQuery" resultMap="many2oneMap">
select * from t_user
</select>
<!-- 一对多两种方式配置:1)没有延迟加载 -->
<resultMap type="databean" id="one2ManyMap1">
<id property="id" column="id"/>
<result property="name" column="name"/>
<collection property="userlist" ofType="userbean" >
<id column="userid" property="userid"/>
<result column="username" property="username"/>
</collection>
</resultMap>
<select id="one2ManyQuery1" resultMap="one2ManyMap1">
select t1.*,t2.* from t_data t1
left join t_user t2 on t1.id=t2.did
</select>
<!-- 一对多两种方式配置:2)有延迟加载 产生N+1 -->
<resultMap type="databean" id="one2ManyMap2">
<id property="id" column="id"/>
<result property="name" column="name"/>
<collection property="userlist" ofType="userbean" select="findUserByDid" column="id" >
<id column="userid" property="userid"/>
<result column="username" property="username"/>
</collection>
</resultMap>
<select id="findUserByDid" resultType="userbean" parameterType="int">
select * from t_user where did=#{value}
</select>
<select id="one2ManyQuery2" resultMap="one2ManyMap2">
select * from t_data
</select>
</mapper>
分享到:
相关推荐
mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的...
mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...
解决mybatis头文件报错 下载好压缩包 解压将文件放到本地文件夹 例如 D盘的哪个文件夹 D:\mybatis\ ;然后打开eclipse ->Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你...
本工程为 MyBatis-Plus 的官方示例,项目结构如下: mybatis-plus-sample-quickstart: 快速开始示例 mybatis-plus-sample-quickstart-springmvc: 快速开始示例(Spring MVC版本) mybatis-plus-sample-reduce-...
free-idea-mybatis is an enchange plugin for idea to supoort mybatis,here is the main functions: generate mapper xml files navigate from the code to mapper and from the mapper back to code auto code...
赠送jar包:mybatis-spring-2.0.0.jar; 赠送原API文档:mybatis-spring-2.0.0-javadoc.jar; 赠送源代码:mybatis-spring-2.0.0-sources.jar; 赠送Maven依赖信息文件:mybatis-spring-2.0.0.pom; 包含翻译后的API...
赠送jar包:mybatis-generator-core-1.3.7.jar; 赠送原API文档:mybatis-generator-core-1.3.7-javadoc.jar; 赠送源代码:mybatis-generator-core-1.3.7-sources.jar; 赠送Maven依赖信息文件:mybatis-generator-...
基于mybatis的慢SQL小插件,原理是mybatis拦截器。只需要在springboot的配置文件做简单的配置,mybatis拦截器将SQL中所有参数自动做了填充。拦截器监控慢SQL并将完整的可执行的SQL语句打印在日志文件中,复制该SQL...
赠送jar包:mybatis-3.5.9.jar; 赠送原API文档:mybatis-3.5.9-javadoc.jar; 赠送源代码:mybatis-3.5.9-sources.jar; 赠送Maven依赖信息文件:mybatis-3.5.9.pom; 包含翻译后的API文档:mybatis-3.5.9-javadoc-...
当前已经是移动互联网时代,Java持久框架Hibernate没有办法适应高性能,灵活,大数据,可优化等要求,这时MyBatis就进入了我们的视野,随着移动互联网应用的持续发酵,Spring MyBatis的应用已在Java互联网平台上得到...
开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2...
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 ...
生成已tk.mybatis封装的mybatis代码
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 ...
mybatis源码是mybatis-3.2.6的源码,用户使用mybatis时可以进行参考
随着大数据时代的到来,Java 持久层框架MyBatis 已经成为越来越多企业的选择。遗憾的是,时至今日国内依然没有一本讨论MyBatis 的书,这增加了初学者的学习难度,初学者往往只能基于零星的案例来学习MyBatis,无法...
此项目为springmvc、Mybatis、EHcache、maven、Spring security3、activiti5工作流的整合 是一个基于数据库的权限管理demo项目、使用mysql数据库 项目运行前需要构建maven私服 而且有些jar包私服中肯定没有,需要...
该jar包是Mybatis和Spring整合必备jar包,适配Mybatis-3.4.0及以上版本。
mybatis配置的重要文件包括mybatis-3-config.dtd mybatis-3-mapper.dtd
【BAT必备】mybatis面试题【BAT必备】mybatis面试题【BAT必备】mybatis面试题【BAT必备】mybatis面试题【BAT必备】mybatis面试题【BAT必备】mybatis面试题【BAT必备】mybatis面试题【BAT必备】mybatis面试题【BAT...