Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lzh-21-db-spring-boot-starter

简介

lzh-21-db-spring-boot-starter 是一个基于 Spring Boot 的 starter 模块,用于简化数据库配置和操作。该模块提供以下功能:

  • 自动填充功能:支持插入和更新操作时自动填充时间字段。
  • 动态数据源配置:支持多数据源切换与配置。
  • ID 生成器:基于毫秒时间戳生成唯一 ID。
  • 事务模板:支持动态事务管理。

功能特性

  • 自动填充:通过 MybatisPlusAutoConfig 配置自动填充功能,使用 DateMetaObjectHandlerPrimaryMetaObjectHandler 实现自动填充逻辑。
  • 动态数据源LzhDynamicDataSourceAutoConfiguration 提供动态数据源配置,支持排除特定的自动配置类。
  • 唯一 ID 生成器MillisecondIdGenerator 提供基于毫秒时间戳的唯一 ID 生成策略。
  • 事务模板DynamicTransactionTemplate 提供动态事务执行方法,允许在不同数据源上执行事务。
  • 时间戳与序列生成TimeUniqueIdUtil 提供时间戳和序列号的生成方法,支持并发安全的时间唯一 ID。

安装配置

Maven 依赖

确保在你的 pom.xml 文件中引入以下依赖:

<dependency>
    <groupId>com.lzh</groupId>
    <artifactId>lzh-21-db-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

配置说明

application.ymlapplication.properties 文件中配置以下属性:

动态数据源配置

spring:
  datasource:
    dynamic:
      enabled: true

自动填充配置

mybatis-plus:
  auto-fill:
    enable: true
    enableInsertFill: true
    enableUpdateFill: true
    createTimeField: createTime
    updateTimeField: updateTime
    createUidField: createUid
    updateUidField: updateUid

使用示例

自动填充字段

在实体类中使用自动填充字段,例如:

public class ExampleEntity {
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
}

动态数据源使用

使用 @DS 注解切换数据源:

@DS("slave")
public List<ExampleEntity> queryFromSlave() {
    return exampleEntityMapper.selectList(null);
}

生成唯一 ID

在需要生成唯一 ID 的地方使用 MillisecondIdGenerator

MillisecondIdGenerator idGenerator = new MillisecondIdGenerator();
Long id = idGenerator.nextId(null);

动态事务管理

使用 DynamicTransactionTemplate 执行事务操作:

dynamicTransactionTemplate.execute(status -> {
    // 执行数据库操作
    return null;
}, "dataSourceName");

贡献代码

欢迎贡献代码和改进建议。请 fork 仓库并提交 Pull Request。

开源协议

本项目基于 MIT License 协议发布。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages