---
title: update操作
date: 2021-02-05 08:58:56
permalink: /pages/216aa8/
---
# update操作

## 一、updateByPk (根据主键更新)

### 1. 通用操作

```java
// 更新的数据
Map<String, Object> map = new HashMap<>();
map.put("USER_NAME","张三");
map.put("PASSWORD", "654321");
map.put("USER_ID", 1);
// 表名
String tableName = "FT_USER";
// 主键
String pkName = "USER_ID";
baseMapper.updateByPk(tableName, pkName, map);
```

### 2. 实体类

```java
FtUser ftUser = FtUser.builder().userName("张三").password("123456").build()
baseMapper.updateByPk(ftUser);
```

### 3. DataMap操作

## 二、updateInPk（根据主键批量更新）

### 1. 通用操作

```java
// 需要更新的主键值
List<Integer> idList = new ArrayList<>();
idList.add(1);
idList.add(2);
idList.add(3);
// 需要更新的字段
Map<String, Object> map = new HashMap<>();
map.put("PASSWORD", "654321");
// 表名
String tableName = "FT_USER";
// 主键
String pkName = "USER_ID";
baseMapper.updateInPk(tableName,pkName,idList,map);
```

### 2. 实体类

```java
// 需要更新的主键值
List<Integer> idList = new ArrayList<>();
idList.add(1);
idList.add(2);
idList.add(3);
// 需要更新的字段
FtUser ftUser = FtUser.builder().password("123456").build();
baseMapper.updateInPk(ftUser,idList);
```

### 3. DataMap 操作

#### a.实体类

* 方法一

```java
FtUser ftUser = FtUser.builder().password("654321").build();
// 需要更新的主键值
List<String> idList = new ArrayList<>();
idList.add("1");
idList.add("2");
idList.add("3");
DataMap<Object> dataMap = DataMap
        .builder()
        .obj(ftUser)
        // 主键值
        .idList(idList)
        .build();
// 需要更新的字段
baseMapper.updateInPk(dataMap);
```

* 方法二

```java
FtUser ftUser = FtUser.builder().password("654321").build();
DataMap<Object> dataMap = DataMap
        .builder()
        .obj(ftUser)
        // 主键值
        .ids("1,2,3")
        .build();
// 需要更新的字段
baseMapper.updateInPk(dataMap);
```

#### b.非实体类

* 方法一

```java
// 更新数据
Map<String, Object> map = new HashMap<>();
map.put("PASSWORD", "654321");
DataMap<Object> dataMap = DataMap
        .builder()
        // 更新数据
        .data(map)
        // 表名
        .tableName("FT_USER")
        // 主键名
        .pkName("USER_ID")
        // 主键值
        .ids("1,2,3")
        .build();
// 需要更新的字段
baseMapper.updateInPk(dataMap);
```

* 方法二

```java
// 需要更新的主键值
List<String> idList = new ArrayList<>();
idList.add("1");
idList.add("2");
idList.add("3");
// 更新数据
Map<String, Object> map = new HashMap<>();
map.put("PASSWORD", "654321");
DataMap<Object> dataMap = DataMap
        .builder()
        // 更新数据
        .data(map)
        // 表名
        .tableName("FT_USER")
        // 主键名
        .pkName("USER_ID")
        // 主键值
        .idList(idList)
        .build();
// 需要更新的字段
baseMapper.updateInPk(dataMap);
```

* 方法三

```java
// 需要更新的主键值
List<String> idList = new ArrayList<>();
idList.add("1");
idList.add("2");
idList.add("3");
DataMap<Object> dataMap = DataMap
        .builder()
        // 更新数据
        .add("PASSWORD","654321")
        // 表名
        .tableName("FT_USER")
        // 主键名
        .pkName("USER_ID")
        // 主键值
        .idList(idList)
        .build();
// 需要更新的字段
baseMapper.updateInPk(dataMap);
```