这是一个用于测试多种数据库操作的Java框架,支持MySQL、MongoDB和Redis等主流数据库。该框架提供了统一的接口和便捷的测试方法,帮助开发者快速验证数据库操作的正确性。
- 支持多种数据库:MySQL、MongoDB、Redis
- 使用TestContainers进行集成测试
- 统一的数据库操作接口
- 完善的日志记录系统
- 使用HikariCP连接池优化性能
- Java 11
- Maven
- MySQL Driver 8.0.28
- Jedis 4.3.1
- MongoDB Driver 4.9.1
- HikariCP 5.0.1
- SLF4J + Logback
- JUnit Jupiter 5.9.2
- TestContainers 1.18.3
src/
├── main/
│ ├── java/
│ │ └── com/database/test/
│ │ ├── core/
│ │ │ ├── DatabaseOperation.java
│ │ │ ├── DatabaseConfig.java
│ │ │ └── DatabaseException.java
│ │ ├── entity/
│ │ │ └── User.java
│ │ ├── mysql/
│ │ │ └── MySQLOperation.java
│ │ ├── mongodb/
│ │ │ └── MongoDBOperation.java
│ │ └── redis/
│ │ └── RedisOperation.java
│ └── resources/
│ └── logback.xml
└── test/
└── java/
└── com/database/test/
├── mysql/
│ └── MySQLOperationTest.java
├── mongodb/
│ └── MongoDBOperationTest.java
└── redis/
└── RedisOperationTest.java
项目使用Logback作为日志框架,配置文件位于src/main/resources/logback.xml。主要特点:
- 同时支持控制台和文件输出
- 按日期滚动日志文件
- 保留30天的日志记录
- 针对不同模块设置不同的日志级别
数据库的连接配置通过DatabaseConfig类进行管理,支持以下配置项:
- MySQL:数据库URL、用户名、密码、连接池配置
- MongoDB:连接字符串、数据库名、集合名
- Redis:主机地址、端口、密码(如需)
项目使用Maven管理依赖,主要依赖已在pom.xml中配置:
<dependencies>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<!-- Redis客户端 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
<!-- MongoDB驱动 -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.9.1</version>
</dependency>
</dependencies>项目使用TestContainers进行集成测试,无需本地安装数据库,只需要安装Docker即可运行测试:
mvn test测试结果将输出到控制台,详细的测试报告位于target/surefire-reports/目录。
提供统一的数据库操作接口:
- 增删改查操作
- 事务管理
- 批量操作
- 连接管理
MySQL数据库操作实现:
- 使用HikariCP连接池
- 支持事务操作
- 预编译语句处理
MongoDB数据库操作实现:
- 文档的CRUD操作
- 聚合查询
- 索引管理
Redis数据库操作实现:
- 字符串操作
- 哈希表操作
- 列表操作
- 集合操作
- 有序集合操作
- 运行测试需要安装Docker
- 确保Docker服务正在运行
- 首次运行测试可能需要下载Docker镜像,请确保网络连接正常
- 测试过程中会创建临时容器,确保系统有足够的资源
- Fork 项目
- 创建特性分支
- 提交变更
- 推送到分支
- 创建Pull Request
本项目采用 MIT 许可证,详情请参见 LICENSE 文件。