5.3 KiB
5.3 KiB
示例数据说明
本项目在启动时会自动初始化MySQL和Oracle数据库的示例数据,方便用户测试和体验API功能。
配置说明
环境变量配置
- 复制
.env.example文件为.env - 根据你的数据库环境修改相应的配置
- 设置
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) | 用户姓名 | 张三, 李四, 王五... |
| 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) | 姓 | 张, 李, 王 |
| 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. 连接数据库
# 连接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. 查询示例数据
# 查询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. 获取表信息
# 获取MySQL数据库表列表
GET /api/v1/databases/{connection_id}/tables
# 获取Oracle表结构
GET /api/v1/tables/{connection_id}/employees/columns
注意事项
- 数据库权限: 确保配置的数据库用户具有创建表、插入数据的权限
- 数据库连接: 确保数据库服务正在运行且可以连接
- 重复初始化: 示例数据使用
INSERT IGNORE(MySQL)避免重复插入 - Oracle序列: Oracle示例数据会先删除已存在的表和序列,然后重新创建
- 禁用示例数据: 设置环境变量
ENABLE_SAMPLE_DATA=false可以禁用示例数据初始化
故障排除
如果示例数据初始化失败,请检查:
- 数据库服务是否正常运行
- 连接参数是否正确
- 数据库用户是否有足够的权限
- 网络连接是否正常
- 查看应用日志获取详细错误信息
初始化失败不会影响服务启动,你仍然可以手动创建数据库连接和数据。