【b-sql-runner】(可能)让你写查询代码比写SQL更爽!
b-sql-runner是一款简单的sql query builder
,追求以最接近写SQL的方式来完成对数据的操作
这是本人首个开源作品,可能是重复造了1个轮子。不管怎样希望能对大家有用,如果好请Star!
目前库还不成熟,日志,错误处理,单元测试等不完善或没有,欢迎有兴趣的PR
以下是简单示例,详细文档见项目
Example
let sqlRunner=getConnection().sqlRunner();
let users=await sqlRunner
.select("oid,group")
.field(b.sum('score').as('scores'))
.from('t_user')
.where(b.eq('status','enable'))
.and(b.isnotnull('mobile'))
.groupBy('group')
.having(b.gte('scores',100))
.orderBy(b.asc('gid,creationDate'))
.limit(10)
.findMany();
//update `t_user` set `score` = `score` + 10, `age` = `age` - 10, `nickname` = `name`
let UserRepository=getRepository({name:'t_user',pk:'oid'});
let affected=await UserRepository
.update()
.incr('score',10)
.decr('age',10)
.replace('nickname','name')
.run();
let users=[{name:'n1'},{name:'n2'}];
let affectedUsers=await UserRepository
.insert(users)
.returning("*",b.expr(b.idIn(users,'name')))
.run();