`
苹果超人
  • 浏览: 199871 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mybatis高级功能

    博客分类:
  • java
 
阅读更多
应用场景:
应用所取的结果集中需要嵌入别的SQL的结果集。

<resultMap type="com.kevin.wallet.dto.CardsDetailResponse" id="cardsDetailResponse"> 
    	<result property="walletID" column="wallet_id"/>
    	<result property="totalAmount" column="totalAmount"/>
    	<result property="pageNumber" column=""/>
    	<result property="totalNumber" column="totalNumber"/>
    	[color=red]<association property="bailianAmount"  column="{id=WALLET_ID}" select="getBailianAmount" />
    	<association property="okAmount" column="{id=WALLET_ID}" select="okAmount" />[/color]
    	[color=yellow]<collection property="cards" ofType="com.kevin.wallet.dto.ListCardInforResponse" >
    	 <result property="cardNo" column="CARD_ID"/>  
		   <result property="cardName" column="CARD_NAME"/>  
		   <result property="balanceValue" column="BALANCE_VALUE"/>  
		   <result property="validateTill" column="FROZEN_AT"/>  
		   <result property="cardType" column="TYPE"/>  
		   <result property="isForbidden" column="IS_FORBIDDEN"/>  
		   <result property="alias" column="CARD_ALIAS"/>  
		   <result property="status" column="STATUS"/>
		   <result property="order" column="CARD_ORDER"/>  
    	</collection>[/color]
 
    </resultMap>


<select id="getBailianAmount" parameterType="java.util.Map" resultType="java.math.BigDecimal">
   		
     	 SELECT  
            SUM(BALANCE_VALUE) as BAILIANAMOUNT 
         FROM( 
          SELECT 
            *
          FROM
            AVALIABLE_MEMBER_CARD member
          WHERE
            member.WALLET_ID = [color=red]#{id}[/color]
          UNION
          SELECT 
            *	
          FROM
            AVALIABLE_PRODUCT_CARD product
          where
            product.WALLET_ID = [color=red] #{id}[/color]
          )where TYPE=1 or TYPE=3 
          GROUP BY  WALLET_ID
         
    </select>


association 是对应数据库中一对一的关系,它会将getBailianAmount sql语句的返回值赋给bailianAmount这个属性。column这个属性用于设置getBailianAmount  sql语句的传入参数。column="{id=WALLET_ID}" 意思是将WALLET_ID列作为getBailianAmount sql语句的参数,id对应map的key, sql语句通过#{id}来获取该key的值。
分享到:
评论

相关推荐

    Mybatis高级映射查询

    1. 动态 SQL:Mybatis 的动态 SQL 功能是高级映射查询的一大亮点。通过 `&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;foreach&gt;` 等标签,开发者可以动态地生成 SQL 语句,根据不同的条件拼接 WHERE ...

    mybatis 高级映射实例

    MyBatis是一个强大的Java持久层框架,它允许开发者将SQL语句与Java代码分离,提供了一种灵活的方式来...在实践中,不断探索和理解MyBatis的其他高级功能,如动态SQL、缓存机制等,将有助于你成为更出色的Java开发者。

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

    总之,MyBatis的高级映射功能为处理多对多查询提供了强大的工具。通过合理配置映射文件,编写适当的SQL查询,以及利用结果映射和缓存策略,开发者可以有效地管理多对多关联数据,提升应用程序的效率和可维护性。在...

    MyBatis高级查询+JFreeChart热点

    【标题】"MyBatis高级查询+JFreeChart热点"是一个综合的学习项目,它涵盖了数据库操作和数据可视化两个重要领域。MyBatis是Java开发中常用的一个持久层框架,而JFreeChart则是一个用于创建高质量图表的库。下面将...

    mybatis高级.rar

    除此之外,MyBatisPlus还提供了例如填充实体类、主键自动生成、多表关联查询等高级功能。这些特性极大地提升了开发效率,使得开发者可以更加专注于业务逻辑,而非数据库操作的细节。 总结来说,“mybatis高级.rar”...

    Mybatis逆向功能

    Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。与传统的Hibernate等全自动化ORM框架不同,Mybatis更加灵活,允许开发者直接编写SQL,更好地控制SQL执行性能。 在Mybatis逆向工程...

    MyBatis高级应用:实现自定义分页插件

    在处理大量数据时,分页功能是必不可少的。MyBatis 原生支持分页,但是它通常依赖于数据库特定的 SQL 语法。为了提高代码的可维护性和可移植性,我们可以通过编写自定义分页插件来实现更灵活的分页逻辑。本文将详细...

    mybatis高级视频教程

    MyBatis提供了一种插件机制,可以对Executor、StatementHandler、ParameterHandler、ResultSetHandler四个接口进行拦截,实现如日志、性能分析等功能。 12. **MyBatis的最佳实践** - 使用MyBatis Generator自动...

    03 mybatis高级(3) 1

    【标题】:“03 mybatis高级(3) 1” 【描述】:“1. SqlSessionFactoryBean源码分析 2. MapperFactoryBean源码分析 3. MapperScannerConfigurer源码分析” 【部分内容】:本课程主要讲解MyBatis的高级特性,包括...

    03 mybatis高级(3) 2

    【标题】:“03 mybatis高级(3) 2” 【描述】:“1. SqlSessionFactoryBean源码分析 2. MapperFactoryBean源码分析 3. MapperScannerConfigurer源码分析” 【部分内容】:略 在深入探讨MyBatis高级主题时,我们...

    03 mybatis高级(1)2

    《Mybatis高级技术详解》 在讲解Mybatis的高级特性之前,我们首先需要理解什么是真实对象和代理对象。真实对象是指程序中实际处理业务逻辑的对象,而代理对象则是用来间接访问真实对象的一种机制,它在真实对象和...

    03 mybatis高级(1)3

    《Mybatis高级进阶》教程主要探讨了Mybatis框架中的高级特性和设计模式的应用,以及如何深入理解并分析其源码。以下是对其中关键知识点的详细说明: **代理模式**: 代理模式是一种设计模式,它允许我们在不改变...

    03 mybatis高级(1)1

    在MyBatis的高级特性中,我们关注的是其架构设计、设计模式的运用以及源码分析。 首先,MyBatis的整体架构分为三个层次:接口层、核心处理层和基础支撑层。接口层是用户直接交互的部分,包括了Mapper接口和...

    springmvc mybatis 简单登录功能

    **MyBatis** 是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。在登录功能中,MyBatis会处理与数据库的交互,比如验证用户名和密码...

    mybatis的高级应用共6页.pdf.zip

    【标题】"mybatis的高级应用共6页.pdf.zip" 提供的是关于MyBatis框架深入使用的教程,...总的来说,这个压缩文件是MyBatis高级用户的宝贵资源,可以帮助开发者更好地掌握MyBatis,并在实际项目中发挥出它的强大功能。

    mybatis基础分页,高级查询

    在这个“mybatis基础分页,高级查询”项目中,我们将深入探讨 MyBatis 如何实现高效且复杂的查询以及分页功能。 首先,基础部分包括了 MyBatis 的基本配置和映射文件。MyBatis 的配置文件(mybatis-config.xml)...

    mybatis 的高级关联查询源码

    MyBatis 提供了强大的动态 SQL 功能,允许我们在 SQL 查询中使用条件判断。这在处理复杂的关联查询时非常有用,可以根据业务需求选择性地加载关联数据,避免了“N+1”问题。 4. **源码解析** 当 MyBatis 执行查询...

    mybatis高级部分

    在MyBatis的高级部分,我们可以深入探讨一些核心特性和高级用法,帮助开发者更好地驾驭这个框架,提升开发效率和代码质量。 1. **Mapper接口和XML配置**:MyBatis允许我们定义Mapper接口,通过注解或XML文件来编写...

Global site tag (gtag.js) - Google Analytics