VBMAN 数据库操作示例
概述
这个示例展示了如何使用 VBMAN 框架连接数据库并进行数据操作,支持多种数据库类型(Access/MySQL/SQLServer),并结合Web API实现数据服务。
项目结构
Database/
├── Form1.frm # 主窗体
├── Config.bas # 配置模块
├── bHello.cls # Hello业务类
├── bMenus.cls # 菜单业务类
├── bStation.cls # 工作站业务类
├── bUsers.cls # 用户业务类
├── _data/ # 数据文件目录
│ └── rtxdb.mdb # Access数据库文件
└── VBMAN_DEMO.vbp # VB6项目文件
核心代码解析
1. 数据库连接(Form1.frm)
vb
Dim HttpServer As New VBMANLIB.cHttpServer
Private Sub Form_Load()
With HttpServer
'配置数据库连接,支持Access/MySQL/SQLServer
.Database.Connect Access, App.Path & "\..\_data\rtxdb.mdb"
'注册业务类
.Router.Reg "Users", New bUsers
.Router.Reg "Station", New bStation
'配置路由映射
.Router.Add "/users/list", "Users@List"
.Router.Add "/users/add", "Users@Add"
.Router.Add "/station/list", "Station@List"
.Start 800
End With
Shell "explorer.exe http://127.0.0.1:800/users/list"
End Sub
2. 业务类示例(bUsers.cls)
vb
Public Sub List(ctx As cHttpServerContext)
'执行SQL查询
Dim rs As Recordset
Set rs = ctx.Db.Query("SELECT * FROM Users")
'将结果转为JSON返回
With ctx.Response.Json
.BeginArray
While Not rs.EOF
.BeginObject
.Item("id") = rs("ID")
.Item("name") = rs("UserName")
.EndObject
rs.MoveNext
Wend
.EndArray
End With
End Sub
Public Sub Add(ctx As cHttpServerContext)
'获取POST参数
Dim userName As String: userName = ctx.Request.Form("username")
'执行插入
ctx.Db.Execute "INSERT INTO Users (UserName) VALUES ('" & userName & "')"
'返回结果
ctx.Response.Json.Item("success") = True
End Sub
功能说明
数据库支持
- 支持多种数据库(Access/MySQL/SQLServer)
- 统一的数据库操作接口
- 自动事务处理
业务逻辑组织
- 按功能模块划分业务类
- 业务类自动获取数据库连接
- 支持数据库操作和Web API集成
Web API设计
- RESTful风格的API设计
- JSON数据格式
- 支持GET/POST等HTTP方法
技术要点
- 数据库连接配置简单,支持多种数据库类型
- 通过ctx.Db直接访问数据库,无需手动管理连接
- 内置JSON支持,方便返回结构化数据
- 支持事务处理和错误管理
实现的接口
- GET /users/list - 获取用户列表
- POST /users/add - 添加新用户
- GET /station/list - 获取工作站列表
扩展建议
- 添加数据验证和错误处理
- 实现更复杂的数据库操作(JOIN,子查询等)
- 添加数据库连接池
- 添加缓存机制
- 实现数据库迁移工具