MyBatis自身集合嵌套,递归查询目录树(适用于MySQL、ORACLE等数据库,数据只存放在一个表结构中,递归代码都写在XML中,通过SQL完成)

这篇博客介绍了如何使用MyBatis在XML中通过SQL实现递归查询,生成文件目录树。适用数据库包括MySQL和Oracle。数据全部存储在TRADER_INFO_FILE表中,递归逻辑在XML映射文件内完成,JAVA代码仅用于递归前的数据准备,递归过程中不访问数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JAVA代码实现(链接):MySql、Oracle(通用方法)递归查询生成文件目录树(JAVA实现 递归过程中不访问数据库,递归之前只访问两次 进行递归前数据准备)

 

以下是XML中实现文件树的查询、递归

场景:根据交易编码,查询文件树

文件、文件夹都存放TRADER_INFO_FILE表中

实体类

public class TradeInfoFile {
    // 文件编码(子)
    private String fileCode;
    // 所属文件编码(父)
    private String belongFileCode;
    // 交易信息编码
    private String finTradeCode;
    // 是否是文件夹
    private Boolean isDirFlag;
    //最后修改时间
    private Date lastModifyTime;
    /*
      children属性不与数据库中TRADER_INFO_FILE标建立映射关系
    */
    @Transient // import javax.persistence.Transient;
    private List<TradeInfoFile> children;
    //省略set/get方法.......................
    
    // 创建文件根节点
    public static TradeInfoFile createRoot(List<TradeInfoFile> fileTree) {
      TradeInfoFi
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值