`

mybatis

阅读更多
<?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-Plus入门+MyBatis-Plus文档手册 中文pdf高清版.rar

    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-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...

    mybatis-3-config/mapper.dtd 解决mybatis头文件报错

    解决mybatis头文件报错 下载好压缩包 解压将文件放到本地文件夹 例如 D盘的哪个文件夹 D:\mybatis\ ;然后打开eclipse -&gt;Window-&gt;prefenrence-&gt;XML-&gt;XML Catalog-&gt;User Specifiled Entreis-&gt;Add-&gt;Location(此处是你...

    MyBatis-Plus 的官方示例(mybatis-plus-samples-master.zip)

    本工程为 MyBatis-Plus 的官方示例,项目结构如下: mybatis-plus-sample-quickstart: 快速开始示例 mybatis-plus-sample-quickstart-springmvc: 快速开始示例(Spring MVC版本) mybatis-plus-sample-reduce-...

    free-idea-mybatis2019.12.18.zip

    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...

    mybatis-spring-2.0.0-API文档-中文版.zip

    赠送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...

    mybatis-generator-core-1.3.7-API文档-中文版.zip

    赠送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的慢SQL小插件,原理是mybatis拦截器。只需要在springboot的配置文件做简单的配置,mybatis拦截器将SQL中所有参数自动做了填充。拦截器监控慢SQL并将完整的可执行的SQL语句打印在日志文件中,复制该SQL...

    mybatis-3.5.9-API文档-中文版.zip

    赠送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-...

    《深入浅出MyBatis技术原理与实战》高清完整PDF下载

    当前已经是移动互联网时代,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-3.4.2...

    mybatis3.5.7.zip

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 ...

    MybatisGenerate_代码生成_tkMybatis_mybatisgenerate_mybatis_

    生成已tk.mybatis封装的mybatis代码

    mybatis-3.2.5.jar及mybatis-spring-1.2.2.jar

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 使用这个类库中的类, Spring 将会加载必要的 MyBatis 工厂类和 session 类。 这个类库也提供一个简单的方式来注入 MyBatis 数据映射器和 ...

    mybatis-3-mybatis-3.2.6

    mybatis源码是mybatis-3.2.6的源码,用户使用mybatis时可以进行参考

    深入浅出MyBatis技术原理与实战(高清带目录版)

    随着大数据时代的到来,Java 持久层框架MyBatis 已经成为越来越多企业的选择。遗憾的是,时至今日国内依然没有一本讨论MyBatis 的书,这增加了初学者的学习难度,初学者往往只能基于零星的案例来学习MyBatis,无法...

    springmvc+Mybatis+activiti5

    此项目为springmvc、Mybatis、EHcache、maven、Spring security3、activiti5工作流的整合 是一个基于数据库的权限管理demo项目、使用mysql数据库 项目运行前需要构建maven私服 而且有些jar包私服中肯定没有,需要...

    mybatis-spring.jar 最新版 适配MyBatis-3.4.0及以上

    该jar包是Mybatis和Spring整合必备jar包,适配Mybatis-3.4.0及以上版本。

    mybatis-3-config.dtd mybatis-3-mapper.dtd

    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必备】mybatis面试题【BAT...

Global site tag (gtag.js) - Google Analytics