# lzh-1.8-db-spring-boot-starter **Repository Path**: coding_13/lzh-1.8-db-spring-boot-starter ## Basic Information - **Project Name**: lzh-1.8-db-spring-boot-starter - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-15 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lzh-1.8-db-spring-boot-starter 这是一个基于 Spring Boot 的 starter 项目,旨在为使用 MyBatis Plus 和动态数据源的项目提供便捷的自动配置和工具类。适用于需要多数据源切换、自动填充字段、唯一 ID 生成等场景。 --- ## 特性 - **动态数据源支持**:通过 `LzhDynamicDataSourceAutoConfiguration` 提供基于注解的动态数据源切换支持。 - **自动填充功能**:支持在插入和更新时自动填充时间、用户 ID 等字段。 - **唯一 ID 生成器**:提供基于时间戳的毫秒级唯一 ID 生成器。 - **事务模板**:封装了动态事务管理模板,支持指定数据源的事务执行。 - **灵活配置**:通过 `application.yml` 或 `application.properties` 可灵活配置自动填充字段、数据源等参数。 --- ## 快速开始 ### 1. 添加依赖 将以下依赖添加到你的 `pom.xml` 文件中: ```xml com.lzh lzh-1.8-db-spring-boot-starter 1.0.0 ``` ### 2. 启用动态数据源(可选) 在主应用类上添加以下注解以启用动态数据源: ```java @EnableDynamicDataSource ``` ### 3. 配置自动填充字段(可选) 在 `application.yml` 中配置自动填充字段: ```yaml mybatis-plus: auto-fill: enable: true create-time-field: createTime update-time-field: updateTime create-uid-field: createUid update-uid-field: updateUid ``` ### 4. 使用唯一 ID 生成器 注入并使用 `TimeUniqueIdUtil`: ```java @Autowired private TimeUniqueIdUtil timeUniqueIdUtil; String id = timeUniqueIdUtil.currentTimestampString(true, true); ``` --- ## 使用示例 ### 动态数据源切换 使用 `@DS` 注解切换数据源: ```java @DS("slave1") public List queryFromSlave() { return userMapper.selectList(null); } ``` ### 自动填充时间字段 实体类中无需手动设置时间字段,框架会自动填充: ```java public class User { private String createTime; private String updateTime; } ``` ### 执行动态事务 使用 `DynamicTransactionTemplate` 执行指定数据源的事务: ```java @Autowired private DynamicTransactionTemplate dynamicTransactionTemplate; public void doInTransaction() { dynamicTransactionTemplate.execute(status -> { // 数据库操作 return null; }, "slave1"); } ``` --- ## 配置项说明 | 配置项 | 默认值 | 说明 | |--------|--------|------| | `mybatis-plus.auto-fill.enable` | `true` | 是否启用自动填充功能 | | `mybatis-plus.auto-fill.create-time-field` | `createTime` | 插入时自动填充的创建时间字段 | | `mybatis-plus.auto-fill.update-time-field` | `updateTime` | 更新时自动填充的更新时间字段 | | `mybatis-plus.auto-fill.create-uid-field` | `createUid` | 插入时自动填充的创建用户 ID 字段 | | `mybatis-plus.auto-fill.update-uid-field` | `updateUid` | 更新时自动填充的更新用户 ID 字段 | --- ## 贡献指南 欢迎提交 Pull Request 和 Issue。请遵循以下规范: - 提交代码前请确保通过所有测试。 - 提交 Issue 时请提供清晰的复现步骤和环境信息。 - 保持代码风格统一,遵循 Java 编码规范。 --- ## 许可证 本项目基于 [MIT License](https://opensource.org/licenses/MIT) 开源。