mybatis-plus 实体数据库Date类型字段自动转为String
时间: 2023-02-20 19:44:37 浏览: 223
MyBatis-Plus提供了一个TypeHandler,可以自动将实体数据库Date类型字段转换为String类型。可以在MyBatis-Plus的配置文件中配置TypeHandler,以实现自动转换。
相关问题
mybatis-plus插入忽略字段
在 MyBatis-Plus 中,可以使用注解 `@TableField` 来标识实体类中的属性是否为数据库表中的字段。如果该属性不是数据库表中的字段,可以使用 `@TableField(exist = false)` 来标识。
如果要在插入数据时忽略某个字段,可以在对应的实体类中使用 `@TableField` 注解来标识该字段不是数据库表中的字段,然后使用 `insert()` 方法进行插入操作时,该字段就会被忽略掉。
例如,假设有一个实体类 `User`,其中有一个字段 `createTime`,需要在插入数据时忽略该字段,可以在 `User` 类的 `createTime` 字段上添加 `@TableField(exist = false)` 注解,如下所示:
```java
public class User {
private Long id;
private String name;
@TableField(exist = false)
private Date createTime;
// 省略getter和setter方法
}
```
然后在插入数据时,可以使用 `insert()` 方法忽略 `createTime` 字段,如下所示:
```java
User user = new User();
user.setName("test");
user.setCreateTime(new Date()); // createTime字段不会被插入
userMapper.insert(user);
```
mybatis-plus日期自动填充
MyBatis-Plus 提供了方便的日期自动填充功能,可以在插入或更新数据时自动填充指定的日期字段。要实现日期自动填充,你需要进行以下几个步骤:
1. 创建一个实体类,并在需要自动填充日期的字段上添加 `@TableField(fill = FieldFill.INSERT_UPDATE)` 注解。示例代码如下:
```java
public class User {
private Long id;
private String name;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date createTime;
// 省略 getter 和 setter 方法
}
```
2. 在 MyBatis-Plus 的配置类中配置日期自动填充处理器。示例代码如下:
```java
@Configuration
public class MybatisPlusConfig {
@Bean
public MetaObjectHandler metaObjectHandler() {
return new MyMetaObjectHandler();
}
}
```
3. 创建一个日期自动填充处理器类,实现 MyBatis-Plus 的 `MetaObjectHandler` 接口,并重写相应的方法。示例代码如下:
```java
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "createTime", Date.class, new Date());
}
}
```
通过以上步骤,当使用 MyBatis-Plus 进行数据插入或更新操作时,会自动填充 `createTime` 字段的值为当前时间。需要注意的是,`createTime` 字段需要在数据库中定义为日期类型。
阅读全文