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

zhangsanfeng • 6157 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
### 主要功能 > 可以搭配gorm的sql结果扫描函数Scan、Find等,将结果直接传入本包提供的树形化函数(ScanToTreeData),快速实现树形化 > 支持无限级树形化(自己嵌套自己)、有限级个性化树形化 > github 仓库地址,欢迎使用,反馈使用意见,顺便点点 star https://github.com/qifengzhang007/sql_res_to_tree ### 核心代码段 ```code // 接受树形结果的结构体要求如下: // 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](https://www.ginskeleton.com/images/tree1.jpg)
授权协议:
开发语言:
golang 查看源码»
操作系统:
任意
6157 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传