orm
简介
数据库中间件, 更具配置文件生成mysql数据库, 以及对应gs
操作代码
组件接口
batch_worker.gs
批量处理sql处理类
函数原型 | 函数作用 |
---|---|
void post_sql(string sql) | 添加延时处理 sql |
void close_worker() | 停止批量处理sql |
void set_time_internal(mixed val) | 设置两次处理sql的时间间隔 |
int get_time_internal() | 获取两次处理sql的时间间隔 |
MetaTable.gs
函数原型 | 函数作用 |
---|---|
bool ensure_table_exists() | * 确保表格存在,如果不存在则创建 |
bool create_table(bool is_force = false) | 创建表格 |
string get_version() | 获取数据库当前版本号 |
bool set_version(string version) | 设置数据库当前版本号 |
string get_value(string name) | 获取指定键的值 |
bool set_value(string name, string value) | 设置指定键的值 |
orm.gs
函数原型 | 函数作用 |
---|---|
bool ensure_db(map config) | 确保数据库存在, 如果不存在则创建 |
bool init_db(string name, map db_config, map options = ) | 初始化数据连接池 |
DbInfo load_db_info(string path) | 从文件中加载数据库信息, 可以用来判断当前数据库是否和开发环境一致 |
DbInfo db_info() | 数据库中所有表的信息 |
TableInfo table_info(string name) | 表格的列信息以及索引信息 |
map table_indexes(string table_name) | 表格的索引信息 |
map table_columns(string name) | 显示表的信息 |
array all_tables() | 获取所有表 |
array select(string sql, map val = , int max_row = 1000) | 执行sql查找命令 |
int exec(string sql, map val = ) | 执行sql命令 |
int run_immediately(string sql, map val = ) | 马上运行非 select sql 命令 |
bool run_wait(string sql, map val = ) | 延时批量运行sql命令 |
object get_conn() | 从连接池中获取数据链接 |
void give_conn(object conn) | 将连接放回连接池 |
string format_sql(string sql, mixed param = ) | 使用 map 对 sql 中 ${#name} 进行赋值变换 |
map get_db_config() | 获取数据库配置 |
bool table_exists(string name) | 判断表是否存在 |
string get_create_db_sql(bool with_tables = true) | 获取数据库的 DDL 语句 |
TableBase.gs
函数原型 | 函数作用 |
---|---|
void set_parent_bean(class_map m) | 设置映射的 class 实例 |
class_map get_parent_bean() | * 获取映射的 class 实例 |
bool delete_row(int id) | 删除指定行 |
class_map get_by_id(int id) | 根据 ID 获取单条记录 |
array get_all() | 获取所有记录 |
class_map single(string condition) | 根据条件获取单条记录 |
array multi(string condition = nil) | 根据条件获取多条记录 |
array select(string condition = nil, array col = nil) | 根据条件获取多条记录 |
TableInfo get_table_info() | 获取表信息 |
样例
import pkg.orm;
import gs.util.*;
map mysql = {
"driver" : "mysql",
"address" : "127.0.0.1",
"db": "err1",
"user": "root",
"passwd": "123",
"max_conn_count": 2,
"thread_num": 4
};
// 初始化数据库
logger.init({
"log_level" : LogLevel.DEBUG,
"log_device" : [file.get_stdout()],
"time_format" : TimeType.COMPACT_HMS
});
orm.init_db("error", mysql, {
"db_version": "1.0.0", // 数据库版本
"table_bean_dir": "/sample/table",
"auto_create_table": true, // 是否自动创建数据库
"force_create_table": true, // 是否强制创建表
// "create_bean": true,
"check_table": true,
"auto_create_table": true,
});