CastleModel数据库操作类
封装的Sequelize作为数据库操作底层,对Sequelize的部分操作进行了简化,语法结构类似于ThinkPHP3.2结构。 需要依赖于 castle-config/castle-controller/sequelize,其它依赖请参见相关库的依然范围
典型基础用法
//获取模型对象;//启动事务await this.startTrans;//添加数据await model.add;//批量添加await model.addAll//更新数据await model.where.limit1.save;//自增自减处理,UID>7的Sex全部-1,UID+1await model.where.incOrDec//当存在DTime时自动做软删除,否则就是硬删除await model.where.del//查询单个await model.where.find//分页查询多个await model.where.page1, 10.select// 查询并统计await model.where.selectAndCount;//指定字段查询await model.fields'UID'.find//排除字段查询await model.fields'UID', true.find//批量条件更新,仅支持MySQLawait model.caseSave//执行自定义SQL查询,通过__DB_PREFIX__注入表前缀await model.query`SELECT * FROM __DB_PREFIX__sex`//执行自定义SQL,await model.exec`UPDATE Sex SET UID=UID+1`, 'UPDATE'//执行存储过程或函数await model.exec`CALL reset();`, 'RAW'//查询单个字段且只要一个await model.getFields'Sex';//查询单个字段且返回数组await model.getFields'Sex', true;//支持排序await model.order'UID DESC'.select;//支持group操作await model.group.fields.select//支持SUM等统计函数处理await model.fnFieldDbFn.SUM, 'UID', 'UID'.group.select;//支持limit,不适用page方法时await model.limit1.select;//支持直接封装的SUM操作await model.group.sum'UID'//支持自动检测是否存在,若不存在则自动添加await model.addIfNotExist//也可以自定义存在检测条件await model.addIfNotExist, //提交事务,两种方式都行,此处的this指向 BaseControllerawait this.commit;await model.commit//回滚事务,两种方式都行await this.rollback;await model.rollback//支持嵌套事务await this.startTrans;await this.startTrans;await this.startTrans;await this.commit;await this.commit;await this.commit;//当提交次数=开起次数时最后一次提交,之后的commit会报错await this.commit;//若中途发生一次rollback调用则会直接抛出错误await this.rollback