JeeSite 快速开发平台
官方网站
    • 平台简介
    • 架构特点
    • 技术选型
    • 功能介绍
    • 安装部署
    • 常见问题
    • 目录结构
    • 更新日志
    • Vue 文档
    • BPM 文档
    • Cloud 文档
V5 演示
Vue 演示
视频
抖音
💖联系
  • 我要提意见、文档纠错
  • JeeSite 代码库, 请⭐Star关注
  • JeeSite Vue 代码库, 请⭐关注
  • Spring Cloud 微服务架构
  • JeeSite 手机端/移动端
  • AI + RAG + CMS 人工智能
  • Flowable 中国式工作流
  • OAauth2 统一认证服务器
  • 政务内外网环境中间件
  • 访问 ThinkGem 官方博客
  • 点击进入,下拉查看动态
官方网站
    • 平台简介
    • 架构特点
    • 技术选型
    • 功能介绍
    • 安装部署
    • 常见问题
    • 目录结构
    • 更新日志
    • Vue 文档
    • BPM 文档
    • Cloud 文档
V5 演示
Vue 演示
视频
抖音
💖联系
  • 我要提意见、文档纠错
  • JeeSite 代码库, 请⭐Star关注
  • JeeSite Vue 代码库, 请⭐关注
  • Spring Cloud 微服务架构
  • JeeSite 手机端/移动端
  • AI + RAG + CMS 人工智能
  • Flowable 中国式工作流
  • OAauth2 统一认证服务器
  • 政务内外网环境中间件
  • 访问 ThinkGem 官方博客
  • 点击进入,下拉查看动态
源码仓库:JeeSite
前后分离:JeeSite Vue
微服务版:JeeSite Cloud
点个 ⭐ 吧!感谢您的支持 😘️
  • 快速了解

  • 后端开发手册

    • 快速开始、安装部署
    • 代码生成、表结构 ER 图
    • 持久层、@Table、多数据源
    • 业务层、数据权限、库事务
    • 控制层、功能权限、Shiro
    • 后端工具类、Utils、国密
    • 动态维护数据、表、实体
      • 引言
      • 数据源管理
        • 1、新增或编辑
        • 2、连接类型
        • 3、连接池类型
        • 4、修改记录
      • 数据表管理
        • 1、新增或编辑
        • 2、字段类型
        • 3、表常用字段
        • 4、数据表索引
        • 5、复制表结构
        • 6、查看表数据
        • 7、导入现有表
      • 数据实体管理
        • 1、基本信息
        • 2、实体属性
        • 3、实体联表
        • 4、查询条件
        • 5、排序字段
        • 6、数据维护
      • 数据导入导出
        • 1、基本信息
        • 2、字段配置
        • 3、导出导入选项
      • 数据管理分类
      • 修改记录留痕
    • API 接口开发、Vue 接口
    • ★ 常见问题 ★
  • Vue前端手册

  • 经典前端手册

  • 扩展功能专题

  • 云服务技术架构

  • 技术支持与服务

数据库表动态数据管理、在线建表、增删改查、导入导出

# 引言

动态数据基础管理(Dynamic/Data Base Manage)简称 DBM,通过 Web 界面,实现底层数据动态管理。

  • 支持在线维护数据源、数据表、数据字段、索引等,支持多种数据库类型
  • 支持在线维护 @Table 数据实体,支持 @JoinTable 实体联表查询,多级联表
  • 支持动态配置数据实体,输出输入字段数据类型转换、字段验证、多种查询类型
  • 支持实体的数据维护,如:增加数据、更新数据、启用数据、停用数据、删除数据
  • 支持实体数据 Excel 配置,如:配置字段,在线导入数据,在线导出数据

DBM 以实现底层动态数据管理,如:建表、表索引、数据增删改查、多表查询、导入导出等功能。
其外如:列表配置、表单配置、业务逻辑、主子表 等,将在 DFM 动态功能管理模块中实现,敬请期待。

特点:

  • 数据库表 DLL 基于 Liquibase 实现,生来具有的跨数据库支持,多数据库扩展性
  • 已支持 MySQL、Oracle、Sql Server、PostgreSQL、达梦数据库、人大金仓。
  • 自动根据通用配置字段数据类型,映射为不同类型数据库下的字段类型
  • 支持根据表描述和字段描述的拼音,自动生成表名和字段名,方便快捷
  • 支持变更数据表名、字段名、表描述、列描述、类型、主键、必填等
  • 支持数据表有数据的时候、字段有索引的时候,进行字段类型变更、增加必填属性
  • 支持不同类型数据库下的,日期类型、数值类型的字段默认值自动化处理
  • 支持自定义配置字段类型,通过字典管理快捷增加通用数据类型
  • 支持快速添加常用字段(如:创建者、创建时间、更新者、更新时间、组织编码、树表字段、自定义等)
  • 支持快速添加常用字段的索引,方便快速维护,提高数据查询分析性能
  • 支持通过其它数据库管理工具增减数据字段和索引后的自动同步到 DBM 模块
  • 支持用户维护数据表、数据字段、数据字典的记录留痕,显示修改前后的数据,方便追溯
  • 支持离线库单元测试,快捷指定数据变更数据,生成不同类型的数据库 DDL
  • 支持对创建和导入的数据表,通过分页方式快捷的查看预览表中的数据
  • 支持动态管理多数据源,管理其它数据源下的表,支持连接池配置
  • 支持严格的权限控制,必须有最高级别的管理人员才可维护数据表
  • 支持导入现有数据表,方便纳入 DBM 进行管理
  • 支持数据表创建草稿,设计完成后统一生成
  • 支持数据表、数据实体业务分类,方便分类管理
  • 支持根据数据表创建数据实体,支持联表,多级联表
  • 支持支持数据实体单表增删改查,支持树表增删改查
  • 支持动态配置实体数据 Excel 导入导出

功能:

  • 数据表管理:对数据库中的物理表进行管理维护,新增或更改表和字段、导入现有表、数据分页查询。
  • 数据表索引管理:对数据表进行索引维护、自动生成索引名称,提高查询性能。
  • 数据实体管理:动态配置数据实体字段、联表、多级联表、查询条件、排序、字段数据类型转换、后端验证。
  • 数据导入导出:动态配置 Excel 导入导出选项、导入导出字段、数据类型类型转换。
  • 数据表分类:对业务进行分类管理,方便对数据表、动态功能等的业务进行分类。
  • 数据源管理:动态维护系统数据源,支持多种数据库数据源,除了系统内置外还可以自定义,支持连接池配置。
  • 修改历史留痕查询:方便进行操作审计,追溯操作者对数据表的更改记录,修改前和修改后的记录。
  • 通用字段组维护:快捷添加业务上的通用字段,如状态、创建者、创建时间等。

该功能可作为动态表单和列表的底层数据结构的界面维护,动态的背后必须有强大的数据结构支撑。

# 数据源管理

进入菜单:数据管理 -> 数据源管理

通常是通过 application.yml 维护 dataSourceNames 数据源,本功能可通过菜单进行动态创建数据源。

# 1、新增或编辑

填写完成数据库连接参数后,点击保存按钮,后台会进行连接参数的正确性进行验证,如果连接失败,界面给予提示原因。连接成功后系统自动加入到当前数据源池中,方可后面使用该数据源。

# 2、连接类型

支持自定义扩展(可配置一些连接参数默认值)

# 3、连接池类型

支持自定义扩展(实现 AddDataSource 接口类)

# 4、修改记录

修改数据源时,需要填写修改原因提交,系统会自动进行修改前后数据比较留痕。可点击“修改记录”按钮,快速查看修改日志。

# 数据表管理

进入菜单:数据管理 -> 数据表管理

通过 Web 界面,即可维护数据源、数据表、数据字段、索引等。

# 1、新增或编辑

填写表描述或列描述后,自动根据拼音生成表名称或列名称。如果是修改操作,则不会进行自动生成表名和列名,防止更改描述后又被覆盖。 保存后,系统会自动进行比较修改的内容,仅对更改的内容生成DLL语句并执行,实现更改到数据库的物理数据表中。 有些数据库不支持带数据的物理表修改字段类型,JeeSite会自动处理进行创建临时字段完成更改类型。 安全提示:保存前会要求填写修改原因,并给与安全提示,防止误操作,如果有对数据字段进行删除操作,还给与二次提示。

# 2、字段类型

支持自定义增加

# 3、表常用字段

支持自定义

举例:(实现 AddCommonColumn 接口)

public class StatusCommonColumn implements AddCommonColumn {

  @Override
  public List<DbmTableColumn> getColumns() {
    List<DbmTableColumn> list = ListUtils.newArrayList();
    list.add(createColumn("状态", "status", "char(1)", true, true));
    list.add(createColumn("创建者", "create_by", "varchar(64)", true, true));
    list.add(createColumn("创建时间", "create_date", "datetime", true, true));
    list.add(createColumn("更新者", "update_by", "varchar(64)", true, true));
    list.add(createColumn("更新时间", "update_date", "datetime", true, true));
    list.add(createColumn("备注", "remarks", "nvarchar(600)", false, true));
    return list;
  }

  @Override
  public List<DbmTableIndex> getIndexes() {
    List<DbmTableIndex> list = ListUtils.newArrayList();
    list.add(creatIndex("状态(status)", "status", false));
    list.add(creatIndex("创建者(create_by)", "create_by", false));
    list.add(creatIndex("创建时间(create_date)", "create_date", false));
    list.add(creatIndex("更新者(update_by)", "update_by", false));
    list.add(creatIndex("更新时间(update_date)", "update_date", false));
    return list;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

添加后,即可在界面上进行选择:如果点击多次系统会进行校验给与提示。

# 4、数据表索引

索引类型支持(正常:数据库默认、唯一:唯一索引)

# 5、复制表结构

表管理操作列上点击复制按钮,可进入复制界面,可对复制内容进行修改表名、列名、等信息,点击提交后,会自动弹出复制该表索引。

# 6、查看表数据

分页方式快速查看该表数据

# 7、导入现有表

系统读取当前数据表信息、列信息、索引信息纳入到DBM中进行管理,数据列表页点击导入按钮,弹出导入对话

导入后将在列表页出现,点击刚导入的表,进入编辑页面

# 数据实体管理

进入菜单:系统管理 -> 数据管理 -> 数据实体管理

entity_0.png

# 1、基本信息

entity_1.png

  • 归属模块:实体所属的模块和 Java 包名
  • 是否系统:是、否
  • 关联表名:实体关联数据表名
  • 表别名:联合查询、多表的时候使用的别名
  • 实体名称:Java 类名称
  • 实体类型:增删改查、树表实体、查询实体、树表查询实体
  • 实体标签:实体类中文名称
  • 实体分类:归属业务分类

# 2、实体属性

entity_2.png

  • 列名:数据表列名
  • 属性名称:实体类字段名
  • 属性标签:中文名称
  • 属性类型:String、Integer、Long、Float、Double、BigDecimal、Boolean、Date
  • 必填:新增数据时校验是否非空
  • 唯一:新增数据的时候校验是否已存在
  • 插入:是否出现在 insert 的列中
  • 更新:是否出现在 update 的列中
  • 强更:更新数据时不管传递过来值是否为空,都进行更新
  • 选择:是否出现在 select 语句中
  • 查询:该字段是否允许查询
  • 查询类型:等于、不等于、大于、大于等于、小于、小于等于、等多值、不等多值、在范围内、在范围外、包含、不包含、开始以、不开始以、结束以、不结束以、是空、不是空(支持多选)
  • 输入校验:从前端提交的数据进行格式验证,如:数值、整数、日期时间、字母数字下划线
  • 输出格式:将 Java 对象转换为 JSON 时的格式,如:日期时间、日期时间含秒、日期
  • 字典类型:数据列表转换、查询表单、新增和编辑表单、选择类型的组件选项
  • 备注:自定义备注信息

# 3、实体联表

entity_3.png

entity_4.png

  • 连接类型:左连接、右连接、内连接
  • 连接实体:选择连接的数据实体
  • 连接属性:Java 类中该联表的实体类字段名
  • 连接表名:选择实体后,自动显示关联数据表名称
  • 表别名:联合查询、多表的时候使用的别名
  • 选择列表:选择的列,连接表需要返回到 select 中的列
  • 懒加载:是否立即加载这个联表,否则需要通过接口调用才启用
  • 连接条件:选择与关联表的连接关系,支持标识符与标识符,标识符与固定值的条件 entity_5.png entity_6.png
  • 备注:自定义备注信息

# 4、查询条件

entity_7.png

  • 关系:并且、或者
  • 列名:上述选择的相关表列,表别名.列名(下拉选择)
  • 条件:等于、不等于、大于、大于等于、小于、小于等于,等等
  • 类型:匹配的类型,包括:标识符、String、Integer、Long、Float、Double、BigDecimal、Boolean、Date
  • 匹配值:如果匹配类型为标识,则选择对应的列名,否则填写一个固定值 entity_8.png

# 5、排序字段

entity_9.png

  • 列名:要排序的字段,表别名.列名(下拉选择)
  • 方向:升序、降序

# 6、数据维护

自动根据实体类型(单表、联表、树表)展示对应列表和表单

# 1)单表维护

entity_10.png entity_11.png entity_12.png

  • 根据实体 select 的字段,展示列表列
  • 根据实体 查询字段,展示查询条件
  • 实体数据的新增和编辑
  • 实体数据的启用和停用
  • 实体数据的删除

# 1)树表维护

entity_13.png

  • 根据实体 select 的字段,展示列表列
  • 根据实体 查询字段,展示查询条件
  • 实体数据的新增和编辑
  • 实体数据的启用和停用
  • 实体数据的删除
  • 新增下级实体数据
  • 展开行,显示下级数据

# 数据导入导出

进入菜单:系统管理 -> 数据管理 -> 数据导入导出

entity_14.png entity_15.png

# 1、基本信息

  • 数据实体:选择要导出导入的数据实体
  • 实体主表:选择实体后自动显示数据表名
  • 工作表名称:Excel 的工作表名称
  • 工作表标题:导出数据第一行显示的标题
  • 选择字段:Excel 的工作表字段列表

# 2、字段配置

  • 属性名称:对应实体字段
  • 字段标题:Excel字段标题
  • 对齐方式:自动、靠左、居中、靠右
  • 列宽:设置 words 字数
  • 字段类型:导入导出时的一些特殊类型转换,如:BigDecimalType、MoneyType、AreaType、OfficeType、CompanyType、PostListType、RoleListType
  • 数据格式:单元格的类型,如:数值、日期、日期时间、金额
  • 导入:是否为导入列
  • 导出:是否为导出列
  • 备注:自定义备注信息

# 3、导出导入选项

  • 导入主属性:选择一个列,在导入的时候,根据该属性进行唯一验证,支持已存在的数据进行更新
  • 导出文件名:导出下载 Excel 文件的文件名称

# 导入数据

entity_16.png

# 导出数据

entity_17.png

# 数据管理分类

进入菜单:数据管理 -> 数据表分类

这是一个树结构分类表,可建立上下级层级关系。

# 修改记录留痕

进入菜单:数据管理 -> 修改记录留痕

该界面可快速查询当前最新更改记录,可根据标题、原因、用户、时间进行检索。

进入 JeeSite 源码仓库页面,点击右上角 ⭐ Star 加星关注。
若文档中存在疏漏或您有宝贵建议,敬请不吝告知,我们将非常感谢并及时跟进。

← 后端工具类、Utils、国密 API 接口开发、Vue 接口→

联系我们:s.jeesite.com  |  微信号:jeesitex  |  邮箱:jeesite@163.com
© 2013-2026 济南卓源软件有限公司 版权所有 | Theme Vdoing

请关注 JeeSite 微信公众号,了解最新动态

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式