tansci-boot/magic-script-skill/references/single-table.md

3.0 KiB
Raw Blame History

单表操作

操作入口:db.table('table_name')

logic

  • 作用:设置本查询是带有逻辑删除的,在执行delete方法时,会转换为update语句,在执行select相关方法时,会拼接logic_field <> logic_value

withBlank

  • 作用:设置后续插入或修改时,不过滤空值。

column

  • 入参:column: String 列名
  • 作用:设置要查询列,select语句中有效

column

  • 入参:column: String 列名
  • 入参:value : Object
  • 作用:设置要操作的列的值,非select语句中有效

primary

  • 入参:primary: String 主键
  • 入参:defaultValue: Object 插入时使用的默认值,可省略
  • 作用:设置主键列,在update中语句有效,或save方法判断标准

insert

  • 入参: data : Map insert的列和值,可省略(通过column设置)
// insert into sys_user(user_name,role) values('李富贵','admin')
return db.table('sys_user').insert({ user_name : '李富贵', role : 'admin'})

batchInsert

  • 入参: collection : Collection insert的列和值的集合
  • 入参: batchSize int batchSize
return db.table('sys_user').batchInsert([
    { user_name : '李富贵', role : 'admin'},
    { user_name : '王二狗', role : 'admin'},
    { user_name : '管理员', role : 'super-admin'},
])

update

  • 入参: data : Map insert的列和值,可省略(通过column设置)
  • 入参:isUpdateBlank: boolean 是否更新空值字段(可省略,默认为false
// update sys_user set user_name = '王二狗' where id = 1
return db.table('sys_user').primary('id').update({ id: 1, user_name : '王二狗'})

save

  • 入参: data : Map insertupdate的列和值,可省略(通过column设置)
  • 入参:beforeQuery boolean 是否根据id查询有没有数据可省略(默认false)
// insert into sys_user(id,user_name) values('xxx','王二狗');
return db.table('sys_user').primary('id', uuid()).save({user_name: '王二狗'});
// insert into sys_user(user_name) values('王二狗');
return db.table('sys_user').primary('id').save({user_name: '王二狗'});
// update sys_user set user_name = '王二狗' where id = 1
return db.table('sys_user').primary('id').save({id: 1,user_name: '王二狗'});

select

查询list与db.select 作用相同)

// select * from sys_user
return db.table('sys_user').select()

page

分页查询与db.page 作用相同)

// select * from sys_user
return db.table('sys_user').page()

where

设置查询条件

  • eq --> ==
  • ne --> <>
  • lt --> <
  • gt --> >
  • lte --> <=
  • gte --> >=
  • in --> in
  • notIn --> not in
  • like --> like
  • notLike --> not like
// select * from sys_user where user_name like '%李富贵%' and role = 'admin'
return db.table('sys_user')
    .where()
    .like('user_name','%李富贵%')
    .eq('role','admin')
    .select()