HCFrame
首页
  • 介绍
  • 快速开始
  • 打包部署
  • 说明
  • 配置
  • 代码示例
  • 组件
  • 概要
  • 通用数据平台
首页
  • 介绍
  • 快速开始
  • 打包部署
  • 说明
  • 配置
  • 代码示例
  • 组件
  • 概要
  • 通用数据平台
  • 概要

  • 通用数据平台

    • 通用数据平台简介
    • 数据源配置

    • BaseMapper

      • 开始使用
      • 实体类
      • DataMap
        • 一、前言
        • 二、使用要求
        • 三、参数说明
        • 四、开始使用
          • 1. tableName && pkName (设置表名及主键)
          • 2. data (设置需要保存或者更新的数据)
          • 3. ids (主键以逗号隔开的形式)
          • 4. fields (字段列表)
          • 5. 其他参数
        • 五、使用示例
          • 1. 实体类保存
          • 2. 非实体类保存
      • save操作
      • update操作
  • 后台
  • 通用数据平台
  • BaseMapper
haocheng Liu
2021-02-05

DataMap

# DataMap

# 一、前言

DataMap 是BaseMapper规定的一种数据结构类型

DataMap 可以用于BaseMapper中的所有数据库操作场景

希望使用者可以掌握 DataMap 的操作方式

当然不使用 DataMap 方式同样也可以快速上手 BaseMapper

# 二、使用要求

在使用 DataMap 的时候需要使用者考虑好当前操作需要的参数及字段

当然,如果使用者缺少部分参数或字段,框架会通过异常的方式提示使用者

但是最好在系统异常提示前,就将参数写好,这样就可以通过 DataMap 进行快速开发

注意

所有的数据库操作,都必须在 DataMap 中设置好表名和主键名

部分操作还需要设置主键值,ids,和 idList等操作。

# 三、参数说明

// 需要更新或保存的数据
private Map<String, Object> data = new HashMap();
// 主键以逗号隔开的值,例:1,2,3
private String ids;
// 主键以list方式传入的值
private List<String> idList;
// 表名
private String tableName;
// 主键名
private String pkName;
// 主键值
private Object pkValue;
// 字段默认值
private String fields = "*";
// 字段列表
private List<String> fieldList;
// 子数据
private String subData;
// selectSql 此字段可通过SelectCondition生成
private String selectSql;
// SELECT sql生成器
private SelectCondition selectCondition;
// 实体类
private T obj;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 四、开始使用

# 1. tableName && pkName (设置表名及主键)

设置表名及主键的方式有三种

  • 通过DataMap设置主键及表名
DataMap<Object> dataMap = DataMap.builder()
        .tableName("FT_USER")
        .pkName("USER_ID")
        .build();
1
2
3
4
  • 通过 OsSysTable 设置主键及表名
OsSysTable osSysTable = OsSysTable
        .builder()
        .tableName("FT_USER")
        .tablePk("USER_ID")
        .build();
DataMap<Object> dataMap = DataMap.builder()
        .sysOsTable(osSysTable)
        .build();
1
2
3
4
5
6
7
8
  • 通过实体类设置主键和表名

实体类需要按照上一章来设置,需要将 @Id 放到主键字段上,将 @Table(name = "表名") 放到实体类上

实体类的字段会自动填充到 DataMap 字段中,非数据库字段,需要在实体类字段上需要加注解 @DataIgnore

FtUser ftUser = FtUser.builder().build();
DataMap<Object> dataMap = DataMap.builder()
        .obj(ftUser)
        .build();
1
2
3
4

# 2. data (设置需要保存或者更新的数据)

  • 通过 map 形式设置
Map<String, Object> map = new HashMap<>();
map.put("USER_NAME", "张三");
map.put("PASSWORD", "654321");
DataMap<Object> dataMap = DataMap.builder()
        .data(map)
        .build();
1
2
3
4
5
6
  • 通过 add 方法设置数据
DataMap<Object> dataMap = DataMap.builder()
        .add("USER_NAME","张三")
        .add("PASSWORD","张三")
        .build();
1
2
3
4
  • 通过实体类方式设置数据

实体方式会自动将实体类数据,主键和表名赋给 DataMap

FtUser ftUser = FtUser
        .builder()
        .username("张三")
        .password("123456")
        .build();
DataMap<Object> dataMap = DataMap.builder()
        .obj(ftUser)
        .build();
1
2
3
4
5
6
7
8

# 3. ids (主键以逗号隔开的形式)

DataMap<Object> dataMap = DataMap.builder()
        .ids("1,2,3")
        .build();
1
2
3

当将多个主键通过上述方式赋给 DataMap 时,我们可以通过 getIdList() 方法获取 List<String> 类型得主键list

// 获取list
List<String> idList = dataMap.getIdList();
// idList 结果
["1","2","3"]
1
2
3
4

# 4. fields (字段列表)

与 ids类似,同样为逗号隔开,设置好后可以通过 getFieldList() 获取得到字段的list

# 5. 其他参数

其他参数可以通过正常的 set 方法和 get 方法进行获取和设置

也可以通过 builder() 和 toBuilder() 方法进行设置和修改

# 五、使用示例

此处只展示调用的保存示例,其余规则会写在每个文档中。

# 1. 实体类保存

FtUser ftUser = FtUser.builder().userName("张三").password("123456").build()
DataMap<FtUser> dataMap = DataMap.<FtUser>builder().obj(ftUser).build();
baseMapper.save(dataMap);
1
2
3

# 2. 非实体类保存

  • 方法一
DataMap<Object> dataMap=DataMap
        .builder()
        // 设置表名
        .tableName("FT_USER")
        // 设置主键
        .pkName("USER_ID")
        // 设置需要新增的字段及内容
        .add("USER_NAME","张三")
        .add("PASSWORD","123456")
        .build();
baseMapper.save(dataMap);
1
2
3
4
5
6
7
8
9
10
11
  • 方法二
 // 设置新增字段及内容
Map<String, Object> map=new HashMap<>();
map.put("USER_NAME","张三");
map.put("PASSWORD","123456");
DataMap<Object> dataMap=DataMap
        .builder()
        // 设置表名
        .tableName("FT_USER")
        // 设置主键
        .pkName("USER_ID")
        // 设置保存内容
        .data(map)
        .build();
baseMapper.save(dataMap);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 方法三
 OsSysTable osSysTable = OsSysTable
                .builder()
                .tableName("FT_USER")
                .tablePk("USER_ID")
                .build();
        // 设置新增字段及内容
 DataMap<Object> dataMap = DataMap
                .builder()
                // 设置表名及字段
                .sysOsTable(osSysTable)
                .add("USER_NAME","张三")
                .add("PASSWORD","123456")
                .build();
 baseMapper.save(dataMap);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 方法四
Map<String, Object> map = new HashMap<>();
map.put("USER_NAME", "张三");
map.put("PASSWORD", "123456");
OsSysTable osSysTable = OsSysTable
                .builder()
                .tableName("FT_USER")
                .tablePk("USER_ID")
                .build();
        // 设置新增字段及内容
DataMap<Object> dataMap = DataMap
                .builder()
                // 设置表名及字段
                .sysOsTable(osSysTable)
                .data(map)
                .build();
baseMapper.save(dataMap);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
上次更新: 2021/02/07, 15:41:10
实体类
save操作

← 实体类 save操作→

最近更新
01
实体类
02-05
02
update操作
02-05
03
save操作
02-04
更多文章>
Theme by Vdoing | Copyright © 2021-2023 Haocheng Liu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式