update cmsselfservice_characteristic_database t set database_type = IF(#{typeId} = database_type,'ebf8db748e3645f08d8e111f0c0bfafa',#{typeId}) 改为使用 if标签的方式
时间: 2024-02-23 07:03:00 浏览: 18
将该 SQL 语句改写为使用 MyBatis 的 if 标签的方式,示例代码如下:
```xml
<update id="updateDatabaseType" parameterType="YourParameterType">
UPDATE cmsselfservice_characteristic_database
SET database_type =
<if test="typeId == database_type">
'ebf8db748e3645f08d8e111f0c0bfafa'
</if>
<if test="typeId != database_type">
#{typeId}
</if>
</update>
```
在这个示例中,我们使用 `if` 标签来判断 `typeId` 是否等于 `database_type`,如果相等,则将 `database_type` 更新为 `'ebf8db748e3645f08d8e111f0c0bfafa'`,否则更新为 `#{typeId}`。您需要将 `cmsselfservice_characteristic_database`、`YourParameterType`、`database_type` 等内容替换为实际使用的表名、参数类型和列名。
相关问题
这样写报错 database_type找不到参数
如果您在使用 MyBatis 的 if 标签时出现了 `database_type找不到参数` 的错误,可能是因为 `database_type` 这个参数名和表中的字段名重复了,导致解析 SQL 语句时出错。为了避免这种情况,可以在参数名前面加上 `param` 前缀。
下面是对您的示例代码进行修改,加上 `param` 前缀的示例:
```xml
<update id="updateDatabaseType" parameterType="YourParameterType">
UPDATE cmsselfservice_characteristic_database
SET database_type =
<if test="typeId == param.database_type">
'ebf8db748e3645f08d8e111f0c0bfafa'
</if>
<if test="typeId != param.database_type">
#{typeId}
</if>
</update>
```
在这个示例中,我们将 `database_type` 改成了 `param.database_type`,这样就不会和表中的字段名重复了。在 Java 代码中,您需要将实际的参数名修改为 `database_type`,而不是 `param.database_type`。
NRF5 SDK的函数 sd_ble_gatts_characteristic_add
函数名称:sd_ble_gatts_characteristic_add
功 能:添加GATT服务的特征
参 数:
uint16_t service_handle:服务句柄
ble_gatts_char_md_t const * p_char_md:特征元数据指针
ble_gatts_attr_t const * p_attr_char_value:特征值指针
uint16_t * p_handles:特征句柄指针
返回值:返回一个错误代码,用于表明函数是否执行成功
函数描述:该函数用于向GATT数据库添加特征。特征是GATT服务的一个组成部分,用于描述服务中的某个特定值。在添加特征时,应先创建服务,然后添加特征。
注意事项:
1.特征元数据中应包含特征的属性(如读、写、通知等)。
2.特征值的长度应小于等于GATT MTU(最大传输单元)的长度。
3.特征句柄指针将用于存储添加特征后返回的特征句柄。
4.特征句柄用于标识一个特征,以便后续操作。
5.特征句柄的值应大于等于服务句柄,小于等于服务句柄+服务中特征的数量。
6.如果在添加特征时指定了写权限,则在写入特征值时应使用sd_ble_gatts_value_set函数。