Skip to content

fefeding/orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ORM

Latest NPM release

介绍

本项目为基于typescript的一个ORM规范。对Model做一个约定,提供DB访问ORM接口。

接口:https://github.com/jiamao/orm/blob/master/api.md

快速上手

安装

npm install @lct/orm

定义Model

Model我们认为是跟表一一对应的类。

import { BaseModel } from "@lct/orm";

@BaseModel.Table('t_user') //关联表t_user,
//@BaseModel.Table(tablename, ['id'])//可以从这里指定多个主健,也可以在属性中去指定
class MyModel extends BaseModel {  
    @BaseModel.TableField('Fid') //映射属性跟字段, 这里可以不指定这句,默认为关联上Fid
    @BaseModel.TablePrimaryKey() //指定当前属性为唯一健
    id: number = 0;
    @BaseModel.TableField('Fname')
    name: string = "";
    nickName: string = "";
    createTime: string = "";
}

使用ORM操作DB

import * as mysql from "mysql";
import { BaseModel, DBHelper } from "@lct/orm";
//本地测试数据库
//先准备好测试DB
const connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'jiamao',
    password : '123456',
    database : 'test',
    charset  : 'utf8'
  });

  //实例化DB操作
const db = new DBHelper(connection);
insert();

//新增一个user
async insert() {
    connection.connect();

    let m = new MyModel();
    m.name = "my name";
    m.nickName = "name";
    let ret = await db.insert(m); 
    console.log(ret);
    
    connection.end();
}

测试用例

测试用例是基于mocha的,依赖mochaassert
表结构参见test/t_user.sql,更新test/index.ts中的数据库连接信息。
装上依赖后直接执行以下命令即可。

npm run test

Releases

No releases published

Packages

No packages published