Skip to content

sql

使用db.sql进行sql操作。

只支持查询:select操作。不支持DML操作:insert, update, delete语句

使用

分页查询

使用'limit offset, count'语句来进行查询分页,

支持限制查询返回的记录条数,通过offset值指定从第多少条开始,count指定总共返回多少条记录。

在不指定offset, count情况,默认值为offset=0, count=5000,意味着查询返回结果集的前5000条。

count最大值可设置为10000条,意味着该查询接口最多只能返回查询结果集的前10000条。

ts
import * as db from 'db';

@useObject(['student__cst'])
class Demo {
    test(): void {
        let value = db.sql().execute("select name, age__CST from student__CST where age__CST > ? limit 10, 1000", { params: [12] });
    }
}

let demo = new Demo();
demo.test();

参数绑定

为了解决sql的常见的注入问题,sql支持绑定参数。

ts
import * as db from 'db';

@useObject(['student__cst'])
class Demo {
    test(): void {
        let value = db.sql().execute("select name, age__CST from student__CST where name = ? and age__CST = ?", { params: ['hello2', 'age2']});
    }
}

let demo = new Demo();
demo.test();
  • in语句参数绑定

in有几个参数值,就需要有几个?号。

ts
import * as db from 'db';

@useObject(['student__cst'])
class Demo {
    test(): void {
        let value = db.sql().execute("select name, age__CST from student__CST where name in (?, ?, ?)", { params: ['name1', 'name2', 'name3']});
    }
}

let demo = new Demo();
demo.test();
  • limit语句不支持参数绑定

即不支持limit ?, ?,然后再传入参数的动态绑定操作。