Skip to content

thisdp/MORM_DB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MORM_DB - MTASA Lua ORM for DataBase

MORM_DB是一个为MTASA(Multi Theft Auto: San Andreas)开发的Lua ORM(对象关系映射)库,用于简化数据库操作。

功能特性

  • 面向对象的数据库操作接口
  • 支持自动迁移数据库结构
  • 支持事务处理
  • 支持链式调用
  • 支持同步和异步查询
  • 丰富的数据类型支持
  • 完善的错误处理和数据验证

安装

classlib.lua文件复制到你的MTASA服务器资源目录中,并在meta.xml中添加相应的引用。

使用方法

1. 定义数据模型

class "account" {
    uid = "uint32",
    username = "char[32]",
    password = "char[256]",
    constructor = function(self, data)
        if type(data) ~= "table" then return end
        for k, v in pairs(data) do
            self[k] = v
        end
    end
}

2. 连接数据库

db = morm:Open("sqlite", "test.db")

3. 创建表

db:Create(account):Query()

4. 插入数据

local newAccount = account{
    uid = 1,
    username = "testuser",
    password = "testpass"
}
db:Create(newAccount):Query()

5. 查询数据

-- 查询所有数据
db:Select("*"):From("account"):Query()

-- 条件查询
db:Select("*"):From("account"):Where("uid", 1):Query()

-- 排序和限制结果数量
db:Select("*"):From("account"):OrderBy("uid", "DESC"):Limit(10):Query()

6. 更新数据

local acc = account{
    uid = 1
}
acc.username = "newusername"
db:Update(acc):Query()

7. 删除数据

-- 删除表
db:Delete("account"):Query()

8. 事务处理

db:BeginTransaction()
-- 执行多个操作
db:Create(account1):Query()
db:Create(account2):Query()
-- 提交事务
db:Commit()

API参考

DataBase类

构造函数

  • Open(dbType, ...): 打开数据库连接

表操作

  • Create(...): 创建表或插入数据
  • AutoMigrate(...): 自动迁移数据库结构
  • Delete(tableName): 删除表
  • Drop(tableName, columnName): 删除表或列
  • Change(tableName, columnName, newDefinition): 修改列名和定义
  • Add(tableName, columnName, columnDefinition): 添加列
  • Modify(tableName, columnName, newDefinition): 修改列定义
  • Alert(tableName, columnName, newDefinition): 修改列定义(别名)

查询构建

  • Select(selectColumn): 添加SELECT子句
  • From(fromTable): 添加FROM子句
  • Where(columnName, value): 添加WHERE子句
  • OrderBy(columnName, order): 添加ORDER BY子句
  • Limit(limit, offset): 添加LIMIT子句
  • Table(tableNameOrTemplate): 指定表名
  • Raw(raw, ...): 添加原始SQL语句

数据操作

  • Find(...): 查找数据
  • Update(...): 更新数据

执行查询

  • Query(timedout, callback): 执行查询

事务处理

  • BeginTransaction(): 开始事务
  • Commit(): 提交事务
  • Rollback(): 回滚事务

数据类型支持

  • 整数类型: int8, int16, int24, int32, int64, uint8, uint16, uint24, uint32, uint64
  • 字符串类型: char, varchar, text, mediumtext, longtext
  • 浮点数类型: float, double, decimal
  • 日期时间类型: date, time, datetime, timestamp
  • 布尔类型: boolean, bool
  • 二进制类型: blob, mediumblob, longblob

许可证

MIT License

About

MTASA Lua ORM for DataBase

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages