https://github.com/oceanbase/ob-samples
Show how to use OceanBase, providing the sample projects for OceanBase.
https://github.com/oceanbase/ob-samples
applications database oceanbase sample-code
Last synced: 6 months ago
JSON representation
Show how to use OceanBase, providing the sample projects for OceanBase.
- Host: GitHub
- URL: https://github.com/oceanbase/ob-samples
- Owner: oceanbase
- Created: 2022-08-08T03:02:44.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-04-17T12:04:51.000Z (9 months ago)
- Last Synced: 2025-04-18T02:41:46.036Z (9 months ago)
- Topics: applications, database, oceanbase, sample-code
- Language: Java
- Homepage:
- Size: 2.47 MB
- Stars: 18
- Watchers: 16
- Forks: 23
- Open Issues: 5
-
Metadata Files:
- Readme: README-CN.md
Awesome Lists containing this project
README
# OceanBase Examples
[English](README.md) | 简体中文
## 介绍
本仓库提供了 OceanBase 的示例项目。
对于基础的示例,我们将它们按照编程语言分组,示例目录以工具名称命名。
对于作为独立应用程序工作的示例,我们将它们放在 applications 目录下,示例目录名称一般包含主要工具名和用途。
您可以将示例代码复制到本地环境并在更改连接信息后直接使用,更多详细信息请参阅示例目录中的README文件。
## 贡献
我们欢迎任何人来贡献,感谢所有的[贡献者](https://github.com/oceanbase/ob-samples/graphs/contributors)!
我们在 GitHub 上创建了一些任务,这些任务难度不高,对于首次贡献者来说比较友好,欢迎感兴趣的开发者认领:https://github.com/oceanbase/ob-samples/issues/16 。
如下是本仓库已经添加或计划在近期添加的示例:
- applications
- `hertzbeat` `mydata` `sveltekit`
- TODO: `seatunnel`
- c
- TODO: `obconnector-c`
- c_plusplus
- TODO: `mysql-connector-cpp`
- c_sharp
- TODO: `mysql-connector-net` `MySqlConnector`
- golang
- `go-sql-driver` `gorm`
- TODO: `xorm` `obkv-table-client-go`
- java
- `mybatis` `mybatis-plus` `mysql-connector-java` `oceanbase-client` `spring-jdbc` `springboot` `testcontainers-java`
- TODO: `hibernate` `spring-data-jpa` `hikaricp` `flink-cdc` `oblogclient` `obkv-table-client-java`
- php
- TODO: `mysqli` `pdo`
- python
- `mysql-connector-python` `pymysql` `sqlalchemy`
- TODO: `mysqlclient`
- ruby
- `activerecord` `mysql2` `sequel`
- rust
- TODO: `sqlx` `rust-mysql-simple` `obkv-table-client-rust`
### 增加一个示例
在本仓库中,一个示例将作为一个独立的模块存在,模块的目录名称应当与示例所用的工具保持一致,如 `mysql-connector-java` 的示例目录就命名为 `mysql-connector-java`。
在本仓库的根目录内有许多分类目录。对于能够通过简单的命令可以直接运行的示例,我们建议按照工具所需要的编程语言环境来分类,如 `mysql-connector-java` 需要添加到 `java` 目录下。 对于需要比较复杂的配置才能运行的示例,我们建议将示例项目放到 `applications` 目录。
#### 简单示例
对于编程语言分类下的简单示例,其目录内应当包含以下内容
- 代码文件
- `run.sh` 运行代码的脚本
- `README.md` 组件用法的介绍文档
如果您不能提供英文的文档,您可以在文档中使用您的母语,我们会在之后对其进行改进。
为了确保示例能够在 GitHub Action 中运行,您的模块添加到 GitHub CI 工作流程。本项目对简单示例提供了一套标准化的运行流程,详情请参阅 [basic-workflow.yml](./.github/workflows/basic-workflow.yml)。您只需要添加以下内容到 [.github/workflows](./.github/workflows) 目录下对应语言的 yml 中即可:
- `module.name`:新模块的名称,应与模块目录名称相同。
- `module.with_oceanbase_container`:是否使用预先部署的 OceanBase 容器,可选,默认设置为 true。如果它是 true,您可以在 localhost 上使用用户名 `root@sys` 或 `root@test` 以及空密码连接到它。
#### 复杂示例
对于需要放到 applications 目录下的复杂示例,其目录内同样需要包含项目文件和 `README.md` 文档,除此之外,您需要添加 ci 流程到 [application.yml](./.github/workflows/application.yml) 中。
## 参考信息
关于更多 OceanBase 的细节请参考 [社区官网](https://open.oceanbase.com)。