日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mybatis在指定库建表_使用MyBatis Plus自动添加数据库表中的创建时间、创建者、更新时间、更新者...

發(fā)布時(shí)間:2024/7/5 数据库 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis在指定库建表_使用MyBatis Plus自动添加数据库表中的创建时间、创建者、更新时间、更新者... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用到Sringboot、Mybatis Plus、Shiro、Mysql

1、創(chuàng)建一張部門表,表結(jié)構(gòu)

CREATE?TABLE?`sys_dept`?(

`dept_id`?bigint(20)?NOT?NULL?AUTO_INCREMENT?COMMENT?'部門id',

`parent_id`?bigint(20)?DEFAULT?'0'?COMMENT?'父部門id',

`dept_name`?varchar(30)?DEFAULT?''?COMMENT?'部門名稱',

`order_num`?int(4)?DEFAULT?'0'?COMMENT?'顯示順序',

`status`?tinyint(1)?DEFAULT?'0'?COMMENT?'部門狀態(tài)(0:正常?1:停用)',

`create_by`?varchar(64)?DEFAULT?''?COMMENT?'創(chuàng)建者',

`create_time`?datetime?DEFAULT?NULL?COMMENT?'創(chuàng)建時(shí)間',

`update_by`?varchar(64)?DEFAULT?''?COMMENT?'更新者',

`update_time`?datetime?DEFAULT?NULL?COMMENT?'更新時(shí)間',

`remark`?varchar(200)?DEFAULT?''?COMMENT?'備注',

PRIMARY?KEY?(`dept_id`)

)?ENGINE=InnoDB?AUTO_INCREMENT=27?DEFAULT?CHARSET=utf8

2、配置文件中添加下面的代碼

@Configuration

public class MyBatisPlusConfig {

/**

* 自動(dòng)填充功能

* @return

*/

@Bean

public GlobalConfig globalConfig() {

GlobalConfig globalConfig = new GlobalConfig();

globalConfig.setMetaObjectHandler(new MetaHandler());

return globalConfig;

}

}

3、MetaHandler類的代碼

/**

* 處理新增和更新的基礎(chǔ)數(shù)據(jù)填充,配合BaseEntity和MyBatisPlusConfig使用

*/

@Component

public class MetaHandler implements MetaObjectHandler {

private static final Logger logger = LoggerFactory.getLogger(MetaHandler.class);

/**

* 新增數(shù)據(jù)執(zhí)行

* @param metaObject

*/

@Override

public void insertFill(MetaObject metaObject) {

SysUserEntity userEntity = ShiroUtil.getUser();

this.setFieldValByName("createTime", new Date(), metaObject);

this.setFieldValByName("createBy", userEntity.getLoginName(), metaObject);

this.setFieldValByName("updateTime", new Date(), metaObject);

this.setFieldValByName("updateBy", userEntity.getLoginName(), metaObject);

}

/**

* 更新數(shù)據(jù)執(zhí)行

* @param metaObject

*/

@Override

public void updateFill(MetaObject metaObject) {

SysUserEntity userEntity = ShiroUtil.getUser();

this.setFieldValByName("updateTime", new Date(), metaObject);

this.setFieldValByName("updateBy", userEntity.getLoginName(), metaObject);

}

}

4、執(zhí)行正常的增刪改操作,例如新增

@RequiresPermissions("sys:dept:add")

@PostMapping("/add")

@ResponseBody

public R add(@RequestBody SysDeptEntity deptEntity) {

logger.info("添加信息={}", deptEntity);

sysDeptService.save(deptEntity); // 不再需要設(shè)置setCreateBy、setCreateTime、setUpdateBy、setUpdateTime操作,代碼更優(yōu)美

return R.ok();

}

5、SysDeptEntity類代碼

@Data

@TableName("sys_dept")

public class SysDeptEntity extends BaseEntity {

private static final long serialVersionUID = 1L;

/**

* 部門ID

**/

@TableId

private Long deptId;

/**

* 部門父節(jié)點(diǎn)ID

**/

private Long parentId;

/**

* 部門名稱

**/

private String deptName;

/**

* 顯示順序

**/

private Integer orderNum;

/**

* 用戶狀態(tài)(0:正常 1:禁用)

**/

private Integer status;

@TableField(exist = false)

private List children;

}

6、BaseEntity類代碼

/**

* 基礎(chǔ)Bean

*/

@Data

public class BaseEntity implements Serializable {

@TableField(value = "create_by", fill = FieldFill.INSERT) // 新增執(zhí)行

private String createBy;

@TableField(value = "create_time", fill = FieldFill.INSERT)

private Date createTime;

@TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE) // 新增和更新執(zhí)行

private String updateBy;

@TableField(value = "update_Time", fill = FieldFill.INSERT_UPDATE)

private Date updateTime;

@TableField(value = "remark")

private String remark;

}

總結(jié)

以上是生活随笔為你收集整理的mybatis在指定库建表_使用MyBatis Plus自动添加数据库表中的创建时间、创建者、更新时间、更新者...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。