Skip to content

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

功能说明

  1. 数据库支持

    • 支持多种数据库(Access/MySQL/SQLServer)
    • 统一的数据库操作接口
    • 自动事务处理
  2. 业务逻辑组织

    • 按功能模块划分业务类
    • 业务类自动获取数据库连接
    • 支持数据库操作和Web API集成
  3. Web API设计

    • RESTful风格的API设计
    • JSON数据格式
    • 支持GET/POST等HTTP方法

技术要点

  1. 数据库连接配置简单,支持多种数据库类型
  2. 通过ctx.Db直接访问数据库,无需手动管理连接
  3. 内置JSON支持,方便返回结构化数据
  4. 支持事务处理和错误管理

实现的接口

  1. GET /users/list - 获取用户列表
  2. POST /users/add - 添加新用户
  3. GET /station/list - 获取工作站列表

扩展建议

  1. 添加数据验证和错误处理
  2. 实现更复杂的数据库操作(JOIN,子查询等)
  3. 添加数据库连接池
  4. 添加缓存机制
  5. 实现数据库迁移工具

基于 VB6组件 发布