at-dao
基于@Annotation的dao/orm框架 Base on at-js
使用举例
1. 启动数据库
var ds = start "host": "127.0.0.1" "user": "root" "password": "123456" "database": "testDB" "port": 3306 ;
关闭
ds; //generator方法
2. 编写DO文件(DO_User.js)
DO(Data access Object)
//DO_User.js/** * ORM(对象-关系 映射) * 将表中的id字段 映射到 select 结果集中的myId */'@dao.column(name=id)';var myId; /** * ORM(对象-关系 映射) * 将表中的name字段,remark字段 映射到 select 结果集中的nameAndRemark * <b>nameAndRemark的结果对应function的运算结果</b> */'@dao.column(name=name,remark)';var { return _name + "." + _remark;} /** * 事务调用声明 */'@dao.bat';var { }//-----------------------------------------------------------------------------------const TABLE_NAME = 'user';moduleexports = { //this中被注入了exe方法,可对数据库做实际的各种操作 //支持两种参数方式:1.直接将参数拼接在sql中;2.通过占位符(?,?)的方式使用 推荐第二种 return this; } { //应用事务 //bat([应用于一个事务中的DO],generator:入参与[]中相对应) //在DO内部,this即当前DO对象 } //----------------------------------------------------------------------------------- { var ts = this; return this; } { var ary = this; return ary ? ary0 : null; } { var ary = this; return ary ? ary0 : null; } //----------------------------------------------------------------------------------- { return this; } //----------------------------------------------------------------------------------- { return this; }
at-test)
3. 单元测试(byvar ds = ; var doUser = ;var assets = ; //启动数据库'@test.start';var { dsstart//for database "host": "127.0.0.1" "user": "root" "password": "123456" "database": "testDB" "port": 3306 } //mock数据'@test.step';var { doUser;} '@test.step';var { var users = doUser; ;} '@test.step';var { var rows = doUser; ;} '@test.step';var { var rows = doUser; ;} '@test.step';var { var uid = doUser; ;} '@test.step';var { var user = doUser; ;} //测试事务'@test.step';var { } //关闭数据库'@test.finish';var { ds;} '@dao.bat';var { throw '';};
任何问题建议, 欢迎提issue,或者直接联系作者即时交流(微信号:ALJZJZ)