feat:增加视频压缩文档
This commit is contained in:
@@ -456,3 +456,66 @@ public class BlobToBase64TypeHandler extends BaseTypeHandler<String> {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
  例如自定义一个处理敏感字段(如密码、手机号)的自动加解密:
|
||||
```java
|
||||
public class EncryptTypeHandler extends BaseTypeHandler<String> {
|
||||
@Override
|
||||
public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {
|
||||
ps.setString(i, AESUtil.encrypt(parameter)); // 自定义加密方法
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||
String encrypted = rs.getString(columnName);
|
||||
return AESUtil.decrypt(encrypted); // 自定义解密方法
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
  然后在实体类字段上加上 @TableField(typeHandler = EncryptTypeHandler.class):
|
||||
```java
|
||||
@TableName("user")
|
||||
public class User {
|
||||
private Long id;
|
||||
private String name;
|
||||
|
||||
// 这个字段在数据库里存的是加密后的字符串
|
||||
@TableField(typeHandler = EncryptTypeHandler.class)
|
||||
private String phone; // 例如 "13800138000" → 存为 "U2FsdGVkX1+oO1W..."
|
||||
|
||||
@TableField(typeHandler = EncryptTypeHandler.class)
|
||||
private String idCard; // 身份证号
|
||||
|
||||
// 普通字段,不加密
|
||||
private String email;
|
||||
}
|
||||
```
|
||||
|
||||
  如果是在XML文件中查询,需要指定TypeHandler:
|
||||
```xml
|
||||
<resultMap id="UserResultMap" type="com.example.entity.User">
|
||||
<id column="id" property="id" />
|
||||
<result column="name" property="name" />
|
||||
<!-- 关键:phone 字段使用 EncryptTypeHandler -->
|
||||
<result column="phone" property="phone" typeHandler="com.example.handler.EncryptTypeHandler"/>
|
||||
<!-- idCard 字段也用同一个处理器 -->
|
||||
<result column="id_card" property="idCard" typeHandler="com.example.handler.EncryptTypeHandler"/>
|
||||
<result column="email" property="email" />
|
||||
</resultMap>
|
||||
```
|
||||
|
||||
  MyBatisPlus中定义了一些常用的类型处理器,例如:JacksonTypeHandler:
|
||||
```java
|
||||
@TableField(value = "fault_type", typeHandler = JacksonTypeHandler.class)
|
||||
```
|
||||
|
||||
  在XML文件中,将typeHandler设置为`com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler`。
|
||||
|
||||
# 六、MyBatis/MyBatis Plus常见问题
|
||||
1. 更新值为null的字段时会失效
|
||||
|
||||
  需要更改字段的更新策略:
|
||||
```java
|
||||
@TableField(value = "file_name", updateStrategy = FieldStrategy.ALWAYS)
|
||||
```
|
||||
Reference in New Issue
Block a user