CNode

【b-sql-runner】(可能)让你写查询代码比写SQL更爽!

分享
Bbingooh发布于8 年前最后回复8 年前6 回复3084 浏览0 收藏

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();
查看回复

回复 (6)

D
dengnan123#1·8 年前

最开始写node业务用的mongodb,后来用MySQL,ORM 用的sequelize,后来感觉还是直接写SQL爽

J
JavaHello#2·8 年前

js版JOOQ?

D
dbit-xia#3·8 年前

看起来远没有sql爽

[CNodeMD]

Z
zy445566#4·8 年前

这个orm有点像laravel的风格。

来自酷炫的 CNodeMD

B
bingooh#5·8 年前
引用 zy445566这个orm有点像laravel的风格。 来自酷炫的 CNodeMD

@zy445566 没有用过laravel,简单看了下差别还是蛮大的

B
bingooh#6·8 年前
引用 JavaHellojs版JOOQ?

@JavaHello b-sql-runner还支持以下功能(不清楚JOOQ是否支持):

  1. 提供returning(),在执行增删改前/后,执行1条查询取出受影响的记录
  2. 提供Repository类,包含常用的CRUD方法
  3. 支持动态SQL,支持直接传入1个json对象以添加多个查询条件(knex支持)
参与回复
登录后即可参与回复。登录