`
y806839048
  • 浏览: 1108167 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

mybatis的管理映射

阅读更多

mybatis的管理映射:

主查询有结果才会促发子查询

 

比如同时有A.java和B.java两个类,A.java如下:

public class A{

    private B b1;

    private List<B> b2;

}

在映射b1属性时用association标签, 映射b2时用collection标签,分别是一对一,一对多的关系

 

 

 <resultMap id="BaseResultMapVo" type="com.esteel.system.beanVo.OpmUserVo" >

    <id column="ID" property="id" jdbcType="VARCHAR" />

    <result column="CODE" property="code" jdbcType="VARCHAR" />

    <result column="PASSWORD" property="password" jdbcType="VARCHAR" />

    <result column="NAME" property="name" jdbcType="VARCHAR" />

    <result column="TELEPHONE" property="telephone" jdbcType="VARCHAR" />

    <result column="EMAIL" property="email" jdbcType="VARCHAR" />

    <result column="ORGANID" property="organid" jdbcType="VARCHAR" />

    <result column="VALID" property="valid" jdbcType="VARCHAR" />

    <result column="MEMO" property="memo" jdbcType="VARCHAR" />

    <result column="LEVEL1" property="level1" jdbcType="DECIMAL" />

    <result column="LAST_LOGIN_DATE" property="lastLoginDate" jdbcType="VARCHAR" />

    <result column="LAST_LOGIN_TIME" property="lastLoginTime" jdbcType="TIMESTAMP" />

    <result column="ONLINE_MARK" property="onlineMark" jdbcType="VARCHAR" />

    <result column="ONLINE_IP" property="onlineIp" jdbcType="VARCHAR" />

    <result column="SESSIONID" property="sessionid" jdbcType="VARCHAR" />

    <collection property="opmRole" ofType="com.esteel.system.bean.OpmRole" select="getr" column="{uId=ID}">

    </collection>

  </resultMap>

 

<select id="getUserByMarkId" parameterType="map" resultMap="BaseResultMapVo">

 select o.*

       from opm_User o 

      where 1 = 1

 <if test="organid!=null and organid!=''"> 

      and o.organId=#{organid} 

 </if>

 <if test="valid!=null and valid!=''"> 

       and o.valid=#{valid} 

 </if>

 <if test="level1!=null and level1!=''"> 

      and o.LEVEL1=#{level1}

 </if>

  order by o.code

  </select>

  <select id="getr" resultMap="BaseResultMapr">

  select r.* from opm_role r join opm_user_role ur on ur.roleid = r.id  join opm_User o on o.id = ur.userid  

  and o.id=#{uId}

  </select>

 

 

=====================================================

 

 

 

 <resultMap id="BaseResultMapVo" type="com.esteel.bank.beanVo.TbFndMktIaoVo" >

    <!--

      WARNING - @mbggenerated

    -->

    <id column="MKT_IAO_KEY" property="mktIaoKey" jdbcType="DECIMAL" />

    <result column="MKT_IAO_ID" property="mktIaoId" jdbcType="VARCHAR" />

    <result column="BILL_ID" property="billId" jdbcType="VARCHAR" />

    <result column="SIGN_ACCOUNT_BANK" property="signAccountBank" jdbcType="VARCHAR" />

    <result column="BANK_ID" property="bankId" jdbcType="VARCHAR" />

    <result column="BANK_NO" property="bankNo" jdbcType="VARCHAR" />

    <result column="MARKET_KEY" property="marketKey" jdbcType="DECIMAL" />

    <result column="CUSTOMER_KEY" property="customerKey" jdbcType="DECIMAL" />

    <result column="CUSTOMER_SON_KEY" property="customerSonKey" jdbcType="DECIMAL" />

    <result column="SUBJECT_ID" property="subjectId" jdbcType="VARCHAR" />

    <result column="OCR_MONEY" property="ocrMoney" jdbcType="DECIMAL" />

    <result column="ACCOUNT_TYPE" property="accountType" jdbcType="CHAR" />

    <result column="UNDO_TYPE" property="undoType" jdbcType="CHAR" />

    <result column="REFRESH_TYPE" property="refreshType" jdbcType="CHAR" />

    <result column="MONEY_USE" property="moneyUse" jdbcType="VARCHAR" />

    <result column="ADD_USER" property="addUser" jdbcType="VARCHAR" />

    <result column="ADD_DATE" property="addDate" jdbcType="VARCHAR" />

    <result column="ADD_TIME" property="addTime" jdbcType="TIMESTAMP" />

    <result column="ADD_IP" property="addIp" jdbcType="VARCHAR" />

    <result column="LAB_USER" property="labUser" jdbcType="VARCHAR" />

    <result column="LAB_DATE" property="labDate" jdbcType="VARCHAR" />

    <result column="LAB_TIME" property="labTime" jdbcType="TIMESTAMP" />

    <result column="LAB_MSG" property="labMsg" jdbcType="VARCHAR" />

    <result column="CHK_USER" property="chkUser" jdbcType="VARCHAR" />

    <result column="CHK_DATE" property="chkDate" jdbcType="VARCHAR" />

    <result column="CHK_TIME" property="chkTime" jdbcType="TIMESTAMP" />

    <result column="CHK_IP" property="chkIp" jdbcType="VARCHAR" />

    <result column="CUR_STA" property="curSta" jdbcType="CHAR" />

    <result column="NOTE" property="note" jdbcType="VARCHAR" />

    <result column="CONT_DATE" property="contDate" jdbcType="VARCHAR" />

    <result column="OPEN_ACCUSER_NAME" property="openAccuserName" jdbcType="VARCHAR" />

    <result column="OPEN_BANK_NAME" property="openBankName" jdbcType="VARCHAR" />

    <result column="ACCOUNT_ID" property="accountId" jdbcType="VARCHAR" />

    <result column="PAY_BANK" property="payBank" jdbcType="VARCHAR" />

    <result column="PAY_BANK_NO" property="payBankNo" jdbcType="VARCHAR" />

    <result column="PAY_NO" property="payNo" jdbcType="VARCHAR" />

    <association property="tbCusFirm" select="getCus" column="{cuslumn=CUSTOMER_KEY}" javaType="com.esteel.system.bean.TbCusFirm"></association>

  </resultMap>

  <select id="getCus" resultType="com.esteel.system.bean.TbCusFirm">

    select * from TB_CUS_FIRM kt where kt.CUSTOMER_KEY=#{cuslumn}

  </select>

  

  <select id="getFndMktIaoList" resultMap="BaseResultMapVo" parameterType="map">

  

     select * from TB_FND_MKT_IAO t where 1=1 

      AND t.SUBJECT_ID not in ('A003','A004')

    <if test="MKT_IAO_ID!=null and MKT_IAO_ID!=''">

      AND t.MKT_IAO_ID like '%'|| lower(trim(#{MKT_IAO_ID})) ||'%'

    </if>

    <if test="CUR_STA!=null and CUR_STA!=''">

      AND t.CUR_STA = #{CUR_STA}

    </if>

    <if test="MKT_IAO_KEY!=null and MKT_IAO_KEY!=''">

      AND t.MKT_IAO_KEY = #{MKT_IAO_KEY}

    </if>

    <if test="SUBJECT_ID!=null and SUBJECT_ID!=''">

      AND t.SUBJECT_ID = #{SUBJECT_ID}

    </if>

    <if test="CUSTOMER_KEY!=null and CUSTOMER_KEY!=''">

      AND t.CUSTOMER_KEY <![CDATA[<>]]> #{CUSTOMER_KEY}

    </if>

    <if test="ADD_USER!=null and ADD_USER!=''">

      AND t.ADD_USER <![CDATA[<>]]> #{ADD_USER}

    </if>

    <if test="CUSTOMER_ID!=null and CUSTOMER_ID!=''">

      AND t.CUSTOMER_ID like '%'|| lower(trim(#{CUSTOMER_ID})) ||'%'

    </if>

    <if test="CUSTOMER_NAME!=null and CUSTOMER_NAME!=''">

      AND t.CUSTOMER_NAME like '%'|| lower(trim(#{CUSTOMER_NAME})) ||'%'

    </if>

    <if test="START_ADD_TIME!=null and START_ADD_TIME!=''">

      AND to_char(t.ADD_TIME,'yyyy-mm-dd') <![CDATA[>=]]> #{START_ADD_TIME}

    </if>

    <if test="END_ADD_TIME!=null and END_ADD_TIME!=''">

       AND to_char(t.ADD_TIME,'yyyy-mm-dd') <![CDATA[<=]]> #{END_ADD_TIME}

    </if>

    order by t.CUR_STA,t.MKT_IAO_ID asc

  </select>

 

分享到:
评论

相关推荐

    MyBatis高级映射(多对多查询)

    通过合理配置映射文件,编写适当的SQL查询,以及利用结果映射和缓存策略,开发者可以有效地管理多对多关联数据,提升应用程序的效率和可维护性。在实际开发中,结合具体的业务场景进行实践和优化,将进一步提高代码...

    Mybatis复杂映射开发开源架构源码2021.pdf

    Mybatis的配置文件中还有一个重要的部分是MapperScannerConfigurer,它通常用于配置Mybatis与Spring框架的集成,通过扫描一个或多个包下的所有接口,并将它们自动注册为Spring管理的bean。 Mybatis的版本发展到5.1...

    mybatis关联映射源码

    通过合理的配置,可以有效地管理关联映射的性能。 总的来说,MyBatis的关联映射功能提供了灵活且强大的方式来处理复杂的对象关系。通过深入理解并实践`chapter10_oneToOne`、`chapter10_oneToMany`和`chapter10_...

    数据库到Mybatis的映射

    Mybatis的配置文件(mybatis-config.xml)是整个框架的入口,其中包含了数据源配置、事务管理器、SqlSessionFactory等关键信息。开发者需要在这里配置数据库的连接地址(URL)、用户名和密码。此外,Mybatis通过...

    mybatis自动生成映射

    MyBatis 是一款深受开发者喜爱的持久层框架,它简化了Java开发中数据库操作的复杂性,特别是通过其强大的映射功能,使得SQL与Java代码能够更好地解耦合。本篇文章将深入探讨MyBatis如何自动生成映射,以及相关的实用...

    MyBatis的关联映射实践报告

    了解数据表之间以及对象之间的三种关联关系 2.熟悉关联关系中的嵌套查询和 嵌套结果 3.掌握一对一,一对多,和多对多关联映射作用

    maven生成mybatis映射文件

    而MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。本篇主要讨论如何利用Maven来自动化生成MyBatis的映射文件。 一、MyBatis ...

    MyBatis SQL映射器框架的Java.zip

    MyBatis是一个强大的Java持久层框架,它将SQL与Java代码分离,使开发者能够更方便地管理和执行数据库操作。这个名为"MyBatis SQL映射器框架的Java.zip"的压缩包很可能包含了关于如何使用MyBatis进行数据库操作的详细...

    MyBatis自定义映射 级联属性操作.zip

    MyBatis是一款强大的Java持久层框架,它简化了数据库与Java对象之间的交互,通过XML或注解的方式将SQL语句映射为Java方法,从而实现动态SQL和数据访问。在"自定义映射 级联属性操作"这个主题中,我们将深入探讨如何...

    为mybatis生成映射文件

    本项目专注于利用MyBatis来生成映射文件,这是MyBatis工作流程中的一个重要环节。下面我们将深入探讨这个过程,以及涉及到的关键知识点。 首先,`mySQL数据库`是本项目的基础,它是世界上最流行的开源关系型数据库...

    springboot多数据源、整合mybatis的映射xml例子.zip

    总之,`springboot多数据源、整合mybatis的映射xml例子.zip`提供的示例涵盖了Spring Boot项目中多数据源管理和MyBatis集成的关键技术点,对于理解如何在Spring Boot应用中灵活处理多个数据库具有很好的参考价值。...

    企业级应用开发-MyBatis关联映射实践实验报告.docx

    MyBatis 的核心配置文件中需要指定数据源、事务管理器以及映射文件的位置。这里需要设置 `&lt;dataSource&gt;`、`&lt;transactionManager&gt;` 和 `&lt;mapper&gt;` 标签,确保 MyBatis 能找到数据库连接和 SQL 映射文件。 4. **编写...

    Mybatis 实体类+Mapper实体映射文件+接口+Config主配置文件+测试类

    4. **Config主配置文件(Mybatis-config.xml)**:Mybatis的全局配置文件,包含了数据库连接信息、事务管理、类型处理器等核心设置。在这里,你需要配置数据源、SqlSessionFactory(SQL会话工厂)以及Mappers的路径...

    MyBatis执行SQL并将结果映射成Java对象.docx

    MyBatis是一个流行的Java持久层框架,它简化了与数据库之间的交互,允许开发者将SQL查询直接映射到Java对象。这个文档主要介绍了MyBatis框架的核心概念和基本使用步骤。 首先,MyBatis的配置文件分为两个部分:全局...

    myBatis映射数据库表

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在MyBatis中,映射数据库表是实现数据访问的关键步骤。本文将深入探讨MyBatis中的mapper、model(实体类)和DAO(数据访问对象)的概念...

    Mybatis关系映射

    Mybatis 是一款流行的轻量级持久层框架,它与Spring MVC 集成后能方便地处理数据库操作,包括各种复杂的数据关系映射。在Java Web开发中,数据关系映射是必不可少的一部分,它帮助我们将数据库中的表结构映射到对象...

    mybatis映射文件xml+bean+dao自动构建

    在Java开发领域,MyBatis是一个非常流行的持久层框架,它简化了数据库操作与Java对象之间的映射。本文将深入探讨“mybatis映射文件xml+bean+dao自动构建”的主题,以及如何利用代码生成工具来提高开发效率。 首先,...

    seu-libmybatis:mybatis通用映射器,自动自动映射器文件

    Seu-libmybatis在此基础上进一步优化,加入了自动装配映射器文件的功能,这意味着开发者无需手动创建和管理Mapper接口和XML配置文件,系统会自动生成并管理这些文件,降低了项目的维护成本。 在使用Seu-libmybatis...

    MyBatis源码分析.pdf

    MyBatis的映射文件解析过程是MyBatis的核心组件之一,负责解析MyBatis的映射文件,并将其转换为MappedStatement对象。映射文件解析过程主要包括解析节点、节点、节点等。 3.1 映射文件解析入口 映射文件解析入口是...

    基于mybatis的员工档案管理系统(swing)

    【标题】"基于MyBatis的员工档案管理系统(Swing)"揭示了这个项目的核心技术栈,即MyBatis和Swing,它们是Java开发中的两个关键组件。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。...

Global site tag (gtag.js) - Google Analytics