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>
相关推荐
通过合理配置映射文件,编写适当的SQL查询,以及利用结果映射和缓存策略,开发者可以有效地管理多对多关联数据,提升应用程序的效率和可维护性。在实际开发中,结合具体的业务场景进行实践和优化,将进一步提高代码...
Mybatis的配置文件中还有一个重要的部分是MapperScannerConfigurer,它通常用于配置Mybatis与Spring框架的集成,通过扫描一个或多个包下的所有接口,并将它们自动注册为Spring管理的bean。 Mybatis的版本发展到5.1...
通过合理的配置,可以有效地管理关联映射的性能。 总的来说,MyBatis的关联映射功能提供了灵活且强大的方式来处理复杂的对象关系。通过深入理解并实践`chapter10_oneToOne`、`chapter10_oneToMany`和`chapter10_...
Mybatis的配置文件(mybatis-config.xml)是整个框架的入口,其中包含了数据源配置、事务管理器、SqlSessionFactory等关键信息。开发者需要在这里配置数据库的连接地址(URL)、用户名和密码。此外,Mybatis通过...
MyBatis 是一款深受开发者喜爱的持久层框架,它简化了Java开发中数据库操作的复杂性,特别是通过其强大的映射功能,使得SQL与Java代码能够更好地解耦合。本篇文章将深入探讨MyBatis如何自动生成映射,以及相关的实用...
了解数据表之间以及对象之间的三种关联关系 2.熟悉关联关系中的嵌套查询和 嵌套结果 3.掌握一对一,一对多,和多对多关联映射作用
而MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。本篇主要讨论如何利用Maven来自动化生成MyBatis的映射文件。 一、MyBatis ...
MyBatis是一个强大的Java持久层框架,它将SQL与Java代码分离,使开发者能够更方便地管理和执行数据库操作。这个名为"MyBatis SQL映射器框架的Java.zip"的压缩包很可能包含了关于如何使用MyBatis进行数据库操作的详细...
MyBatis是一款强大的Java持久层框架,它简化了数据库与Java对象之间的交互,通过XML或注解的方式将SQL语句映射为Java方法,从而实现动态SQL和数据访问。在"自定义映射 级联属性操作"这个主题中,我们将深入探讨如何...
本项目专注于利用MyBatis来生成映射文件,这是MyBatis工作流程中的一个重要环节。下面我们将深入探讨这个过程,以及涉及到的关键知识点。 首先,`mySQL数据库`是本项目的基础,它是世界上最流行的开源关系型数据库...
总之,`springboot多数据源、整合mybatis的映射xml例子.zip`提供的示例涵盖了Spring Boot项目中多数据源管理和MyBatis集成的关键技术点,对于理解如何在Spring Boot应用中灵活处理多个数据库具有很好的参考价值。...
MyBatis 的核心配置文件中需要指定数据源、事务管理器以及映射文件的位置。这里需要设置 `<dataSource>`、`<transactionManager>` 和 `<mapper>` 标签,确保 MyBatis 能找到数据库连接和 SQL 映射文件。 4. **编写...
本话题主要关注MyBatis中的一对一关系映射,这是一种常见的数据库关联关系,用于描述一个实体与另一个实体之间的对应关系。 一对一关系映射在数据库设计中意味着一个表中的记录唯一对应另一个表中的记录。例如,...
4. **Config主配置文件(Mybatis-config.xml)**:Mybatis的全局配置文件,包含了数据库连接信息、事务管理、类型处理器等核心设置。在这里,你需要配置数据源、SqlSessionFactory(SQL会话工厂)以及Mappers的路径...
MyBatis是一个流行的Java持久层框架,它简化了与数据库之间的交互,允许开发者将SQL查询直接映射到Java对象。这个文档主要介绍了MyBatis框架的核心概念和基本使用步骤。 首先,MyBatis的配置文件分为两个部分:全局...
MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在MyBatis中,映射数据库表是实现数据访问的关键步骤。本文将深入探讨MyBatis中的mapper、model(实体类)和DAO(数据访问对象)的概念...
Mybatis 是一款流行的轻量级持久层框架,它与Spring MVC 集成后能方便地处理数据库操作,包括各种复杂的数据关系映射。在Java Web开发中,数据关系映射是必不可少的一部分,它帮助我们将数据库中的表结构映射到对象...
在这个员工管理系统案例中,我们将深入探讨Mybatis如何帮助开发者构建一个高效、灵活的数据访问层。 首先,Mybatis的核心是XML或注解方式配置的SQL映射文件,这些文件将SQL语句与Java代码分离,提高了代码的可读性...
在Java开发领域,MyBatis是一个非常流行的持久层框架,它简化了数据库操作与Java对象之间的映射。本文将深入探讨“mybatis映射文件xml+bean+dao自动构建”的主题,以及如何利用代码生成工具来提高开发效率。 首先,...
Seu-libmybatis在此基础上进一步优化,加入了自动装配映射器文件的功能,这意味着开发者无需手动创建和管理Mapper接口和XML配置文件,系统会自动生成并管理这些文件,降低了项目的维护成本。 在使用Seu-libmybatis...