# 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) 开源。