【b-sql-runner】(可能)让你写查询代码比写SQL更爽!
发布于 9 小时前 作者 bingooh 68 次浏览 来自 分享

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();
回到顶部