sql查询结果树形化反射扫描器 golang包 sql查询结果树形化反射扫描器

zhangsanfeng2021-02-22 00:04:16 • 6582 次点击    
这是一个分享于 2021-02-22 00:04:16 的项目,其中的信息可能已经有所发展或是发生改变。

主要功能

可以搭配gorm的sql结果扫描函数Scan、Find等,将结果直接传入本包提供的树形化函数(ScanToTreeData),快速实现树形化
支持无限级树形化(自己嵌套自己)、有限级个性化树形化
github 仓库地址,欢迎使用,反馈使用意见,顺便点点 star
https://github.com/qifengzhang007/sql_res_to_tree

核心代码段


    // 接受树形结果的结构体要求如下:
    // 1.主键必须使用 primaryKey:"yes" 标签定义,类型必须是  int  int64 in32 等int系列,不能使用 string 等其他类型
    // 2.子结构体关联父级结构体的键必须定义 `fid:"父级主键"`  标签,父子关联键数据类型必须都是 int  int32  int64 等int系列

    // 定义一个目标切片,用于接受最终的树形化数据
    type SchoolGradeClass struct {
        SchoolId   int    `primaryKey:"yes" json:"school_id"`
        SchoolName string `json:"school_name"`
        Children   []struct {
            FkSchoolId int `fid:"SchoolId"`
            GradeId    int `primaryKey:"yes"`
            GradeName  string
            Children   []struct {
                FkGradeId int `fid:"GradeId"`
                ClassId   int `primaryKey:"yes"`
                ClassName string
            } `json:"children"`
        } `json:"children"`
    }
    var dest = make([]SchoolGradeClass , 0)

    // inSqlSlice 可以直接传递 gorm的sql扫描函数  Scan  Find的结果(结构体切片数据格式)
    sql_res_to_tree.CreateSqlResFormatFactory().ScanToTreeData(inSqlSlice, &dest);

最终结果: 效果图1

可以搭配gorm的sql结果扫描函数Scan、Find等,将结果直接传入本包提供的树形化函数(ScanToTreeData),快速实现树形化Read More

Latest commit to the master branch on 1-26-2025
Download as zip
授权协议:
开发语言:
golang 查看源码»
操作系统:
任意
6582 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传