{"id":49325525,"url":"https://github.com/blockCloth/EasyDB","last_synced_at":"2026-05-29T21:00:53.422Z","repository":{"id":251060661,"uuid":"833517692","full_name":"blockCloth/EasyDB","owner":"blockCloth","description":"EasyDB 是一个基于 Java 实现的轻量级数据库，结合了 MySQL、PostgreSQL 和 SQLite 的部分原理。它支持事务隔离、死锁检测、MVCC、多种条件约束以及索引管理，并通过 Spring Boot 和 WebSocket 实现了高效的项目构建与实时通信，适用于快速开发和数据管理场景。","archived":false,"fork":false,"pushed_at":"2024-09-09T14:49:15.000Z","size":744,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-09T18:07:04.845Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://db.blockcloth.cn","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blockCloth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-25T08:07:54.000Z","updated_at":"2024-09-09T14:49:18.000Z","dependencies_parsed_at":"2024-08-19T02:38:11.642Z","dependency_job_id":"7b2b8940-819b-4daf-823f-ea2f8a775920","html_url":"https://github.com/blockCloth/EasyDB","commit_stats":null,"previous_names":["blockcloth/simpled-sql-db"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/blockCloth/EasyDB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockCloth%2FEasyDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockCloth%2FEasyDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockCloth%2FEasyDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockCloth%2FEasyDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blockCloth","download_url":"https://codeload.github.com/blockCloth/EasyDB/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blockCloth%2FEasyDB/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33670211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-26T20:00:31.587Z","updated_at":"2026-05-29T21:00:53.412Z","avatar_url":"https://github.com/blockCloth.png","language":"JavaScript","funding_links":[],"categories":["数据库"],"sub_categories":["微服务框架"],"readme":"# EasyDB\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://blockcloth.cn/codingblog/logo_transparent.png\" alt=\"EasyDB Logo\" width=\"200\"/\u003e\n\u003c/div\u003e\n\n**轻量级、高性能的自定义数据库解决方案**\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Version](https://img.shields.io/badge/version-1.0.0-brightgreen.svg)](https://github.com/blockCloth/EasyDB)\n\n---\n\n## 简介\n\n**EasyDB** 是一个使用 Java 实现的轻量级数据库，灵感来源于 MySQL、PostgreSQL 和 SQLite。项目参考了 MYDB 的设计，专注于提供高效的数据库解决方案，支持数据存储、事务管理、多版本并发控制（MVCC）和索引管理等核心功能，同时集成了日志管理、事务隔离与死锁检测等高级特性。\n\n---\n\n## 主要特性\n\n### 🛠️ 核心功能\n\n- **可靠性**：采用 MySQL、PostgreSQL 和 SQLite 的部分原理，确保数据的安全性与一致性。\n- **两阶段锁协议（2PL）**：实现串行化调度，支持多种事务隔离级别。\n- **多版本并发控制（MVCC）**：优化并发操作，减少阻塞，提高系统性能。\n\n### 🌐 WebSocket 实时通信\n\n- **独立的数据区**：每个用户拥有独立的数据区，确保数据安全性和用户操作的互不干扰。\n- **多页面管理**：优化多页面访问体验，提升用户操作的流畅度。\n\n### 🔍 高效 SQL 解析\n\n- **JSQLParser 集成**：使用 JSQLParser 将 SQL 语句解析为抽象语法树 (AST)，简化 SQL 查询的分析与修改。\n\n### ⚙️ 数据管理与优化\n\n- **全表扫描与索引处理**：支持在字段未建立索引的情况下进行条件筛选操作。\n- **条件约束**：内置丰富的条件约束与主键索引功能，支持唯一性、非空性、自增性等多种约束条件。\n\n### 🚦 事务控制与死锁检测\n\n- **事务隔离机制**：支持从读未提交到串行化的多种隔离级别。\n- **死锁检测**：通过超时检测功能防止系统资源长期占用，增强系统的可靠性。\n\n### 📝 日志管理与故障恢复\n\n- **日志管理**：内置强大的日志管理机制，确保数据库操作的可追溯性和数据一致性保障。\n- **故障恢复**：支持故障恢复功能，增强系统的容错能力和数据安全性。\n\n---\n\n## 快速开始\n\n### 1. 克隆项目\n\n```bash\ngit clone https://github.com/blockCloth/EasyDB.git\ncd EasyDB\n```\n\n### 2. 配置环境\n\n请确保你已经安装了以下工具：\n\n- **JDK 8+**：Java 运行环境。\n- **Maven**：用于管理项目依赖。\n\n### 3. 启动项目\n\n```bash\n启动SimpleSqlDatabaseApplication.java类即可\n```\n\n项目启动成功后，可以通过访问 `http://localhost:8081/index.html` 进行体验。\n\n---\n\n## 使用指南\n\n欲了解如何使用 EasyDB 的详细信息，请查阅以下文档：\n\n- [项目体验](http://db.blockcloth.cn/)\n- [使用指南](http://easydb.blockcloth.cn/document/)\n- [项目文档](http://easydb.blockcloth.cn/demo)\n\n---\n\n## 贡献\n\n欢迎贡献代码和提交 Issue。如果你有任何问题或建议，请随时提交。\n\n1. Fork 本仓库\n2. 创建你的特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交你的修改 (`git commit -m 'Add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 提交 Pull Request\n\n---\n\n## 许可证\n\n本项目使用 [MIT 许可证](https://opensource.org/licenses/MIT) 开源，详情请查阅 `LICENSE` 文件。\n\n---\n\n© 2024-至今 blockCloth\n\n---\n\n### 注意事项\n\n- 项目使用 Spring Boot 构建，确保项目配置正确。\n- 为了项目的顺利运行，请参阅文档中的详细配置步骤。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FblockCloth%2FEasyDB","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FblockCloth%2FEasyDB","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FblockCloth%2FEasyDB/lists"}