173 lines
5.3 KiB
Markdown
173 lines
5.3 KiB
Markdown
# 示例数据说明
|
||
|
||
本项目在启动时会自动初始化MySQL和Oracle数据库的示例数据,方便用户测试和体验API功能。
|
||
|
||
## 配置说明
|
||
|
||
### 环境变量配置
|
||
|
||
1. 复制 `.env.example` 文件为 `.env`
|
||
2. 根据你的数据库环境修改相应的配置
|
||
3. 设置 `ENABLE_SAMPLE_DATA=true` 启用示例数据初始化
|
||
|
||
### 默认配置
|
||
|
||
如果没有设置环境变量,系统将使用以下默认配置:
|
||
|
||
- **MySQL**: localhost:3306, 用户名: root, 密码: password, 数据库: test_db
|
||
- **Oracle**: localhost:1521, 用户名: system, 密码: password, 服务名: XE
|
||
|
||
## MySQL 示例数据
|
||
|
||
### 1. users 表(用户信息表)
|
||
|
||
| 字段名 | 类型 | 说明 | 示例数据 |
|
||
|--------|------|------|----------|
|
||
| id | INT | 用户ID(主键,自增) | 1, 2, 3... |
|
||
| name | VARCHAR(100) | 用户姓名 | 张三, 李四, 王五... |
|
||
| email | VARCHAR(150) | 邮箱地址(唯一) | zhangsan@example.com |
|
||
| age | INT | 年龄 | 25, 30, 28... |
|
||
| created_at | TIMESTAMP | 创建时间 | 当前时间 |
|
||
| updated_at | TIMESTAMP | 更新时间 | 当前时间 |
|
||
|
||
**示例记录:**
|
||
- 张三, zhangsan@example.com, 25岁
|
||
- 李四, lisi@example.com, 30岁
|
||
- 王五, wangwu@example.com, 28岁
|
||
- 赵六, zhaoliu@example.com, 35岁
|
||
- 钱七, qianqi@example.com, 22岁
|
||
|
||
### 2. products 表(产品信息表)
|
||
|
||
| 字段名 | 类型 | 说明 | 示例数据 |
|
||
|--------|------|------|----------|
|
||
| id | INT | 产品ID(主键,自增) | 1, 2, 3... |
|
||
| name | VARCHAR(200) | 产品名称 | 苹果手机, 笔记本电脑... |
|
||
| price | DECIMAL(10,2) | 价格 | 5999.00, 8999.00... |
|
||
| category | VARCHAR(100) | 分类 | 电子产品, 生活用品 |
|
||
| description | TEXT | 产品描述 | 最新款智能手机... |
|
||
| stock_quantity | INT | 库存数量 | 50, 30, 100... |
|
||
| created_at | TIMESTAMP | 创建时间 | 当前时间 |
|
||
|
||
**示例记录:**
|
||
- 苹果手机, ¥5999.00, 电子产品, 库存50
|
||
- 笔记本电脑, ¥8999.00, 电子产品, 库存30
|
||
- 无线耳机, ¥299.00, 电子产品, 库存100
|
||
- 咖啡杯, ¥39.90, 生活用品, 库存200
|
||
- 书包, ¥129.00, 生活用品, 库存80
|
||
|
||
## Oracle 示例数据
|
||
|
||
### 1. departments 表(部门信息表)
|
||
|
||
| 字段名 | 类型 | 说明 | 示例数据 |
|
||
|--------|------|------|----------|
|
||
| department_id | NUMBER | 部门ID(主键) | 1, 2, 3... |
|
||
| department_name | VARCHAR2(100) | 部门名称 | 人力资源部, 技术部... |
|
||
| manager_id | NUMBER | 经理ID | NULL(暂未设置) |
|
||
| location_id | NUMBER | 位置ID | 1700, 1800, 1900 |
|
||
|
||
**示例记录:**
|
||
- 人力资源部, 位置ID: 1700
|
||
- 技术部, 位置ID: 1800
|
||
- 销售部, 位置ID: 1900
|
||
|
||
### 2. employees 表(员工信息表)
|
||
|
||
| 字段名 | 类型 | 说明 | 示例数据 |
|
||
|--------|------|------|----------|
|
||
| employee_id | NUMBER | 员工ID(主键) | 1, 2, 3... |
|
||
| first_name | VARCHAR2(50) | 名 | 三, 四, 五 |
|
||
| last_name | VARCHAR2(50) | 姓 | 张, 李, 王 |
|
||
| email | VARCHAR2(100) | 邮箱地址(唯一) | zhang.san@company.com |
|
||
| phone_number | VARCHAR2(20) | 电话号码 | 13800138001 |
|
||
| hire_date | DATE | 入职日期 | 当前日期 |
|
||
| job_id | VARCHAR2(10) | 职位ID | IT_PROG, SA_REP, HR_REP |
|
||
| salary | NUMBER(8,2) | 薪资 | 8000, 6000, 5500 |
|
||
| department_id | NUMBER | 部门ID | 1, 2, 3 |
|
||
|
||
**示例记录:**
|
||
- 张三, zhang.san@company.com, IT程序员, 技术部, ¥8000
|
||
- 李四, li.si@company.com, 销售代表, 销售部, ¥6000
|
||
- 王五, wang.wu@company.com, 人事代表, 人力资源部, ¥5500
|
||
|
||
### 序列(Sequences)
|
||
|
||
- `emp_seq`: 员工ID序列,从1开始递增
|
||
- `dept_seq`: 部门ID序列,从1开始递增
|
||
|
||
## API 测试建议
|
||
|
||
### 1. 连接数据库
|
||
|
||
```bash
|
||
# 连接MySQL
|
||
POST /api/v1/connections
|
||
{
|
||
"db_type": "mysql",
|
||
"host": "localhost",
|
||
"port": 3306,
|
||
"username": "root",
|
||
"password": "password",
|
||
"database": "test_db"
|
||
}
|
||
|
||
# 连接Oracle
|
||
POST /api/v1/connections
|
||
{
|
||
"db_type": "oracle",
|
||
"host": "localhost",
|
||
"port": 1521,
|
||
"username": "system",
|
||
"password": "password",
|
||
"database": "XE"
|
||
}
|
||
```
|
||
|
||
### 2. 查询示例数据
|
||
|
||
```bash
|
||
# 查询MySQL用户数据
|
||
POST /api/v1/query
|
||
{
|
||
"connection_id": "your_mysql_connection_id",
|
||
"sql": "SELECT * FROM users LIMIT 10"
|
||
}
|
||
|
||
# 查询Oracle员工数据
|
||
POST /api/v1/query
|
||
{
|
||
"connection_id": "your_oracle_connection_id",
|
||
"sql": "SELECT * FROM employees WHERE ROWNUM <= 10"
|
||
}
|
||
```
|
||
|
||
### 3. 获取表信息
|
||
|
||
```bash
|
||
# 获取MySQL数据库表列表
|
||
GET /api/v1/databases/{connection_id}/tables
|
||
|
||
# 获取Oracle表结构
|
||
GET /api/v1/tables/{connection_id}/employees/columns
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. **数据库权限**: 确保配置的数据库用户具有创建表、插入数据的权限
|
||
2. **数据库连接**: 确保数据库服务正在运行且可以连接
|
||
3. **重复初始化**: 示例数据使用 `INSERT IGNORE`(MySQL)避免重复插入
|
||
4. **Oracle序列**: Oracle示例数据会先删除已存在的表和序列,然后重新创建
|
||
5. **禁用示例数据**: 设置环境变量 `ENABLE_SAMPLE_DATA=false` 可以禁用示例数据初始化
|
||
|
||
## 故障排除
|
||
|
||
如果示例数据初始化失败,请检查:
|
||
|
||
1. 数据库服务是否正常运行
|
||
2. 连接参数是否正确
|
||
3. 数据库用户是否有足够的权限
|
||
4. 网络连接是否正常
|
||
5. 查看应用日志获取详细错误信息
|
||
|
||
初始化失败不会影响服务启动,你仍然可以手动创建数据库连接和数据。 |