magic-api magic-api
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
首页
  • 快速入门
  • 基础教程
  • 权限配置
  • 高级应用
  • 开发插件
  • 模块
  • 函数
  • 扩展
  • Gitee (opens new window)
  • Github (opens new window)
  • 演示 (opens new window)
  • SpringBoot配置
  • 编辑器配置
  • 2.x更新日志
  • 1.x更新日志
  • 0.x更新日志
常见问题
💖支持
交流群
  • 模块

    • db模块
      • 引用模块
      • select
      • selectInt
      • selectOne
      • selectValue
      • page
      • update
      • insert
      • call
      • batchUpdate
      • cache
      • deleteCache
      • transaction
      • 列名转换
      • 单表操作API
        • logic
        • withBlank
        • column
        • column
        • primary
        • insert
        • batchInsert
        • update
        • save
        • select
        • page
        • where
    • http模块
    • log模块
    • request模块
    • response模块
    • env模块
    • magic模块
  • 函数

    • 聚合函数
    • 日期函数
    • 字符串函数
    • 数组函数
    • 数学函数
    • 其它函数
  • 扩展

    • Object
    • Number
    • 数组&集合
    • Date
    • Class
    • Pattern
  • API
  • 模块
mxd
2022-01-30
目录

db模块

# 引用模块

db是默认引入的模块,所以无需引入

# select

  • 入参:sql:String
  • 返回值:List<Map<String,Object>>
  • 函数说明:查询List结果
return db.select('select * from sys_user');

# selectInt

  • 入参:sql:String
  • 返回值:Integer
  • 函数说明:查询int结果
// 需要保证结果返回一行一列
return db.selectInt('select count(*) from sys_user');   

# selectOne

  • 入参:sql:String
  • 返回值:Map<String,Object>
  • 函数说明:查询单个对象
return db.selectOne('select * from sys_user limit 1'); 

# selectValue

  • 入参:sql:String
  • 返回值:Object
  • 函数说明:查询单个值
//需要保证结果返回一行一列 
return db.selectValue('select user_name from sys_user limit 1');  

# page

  • 入参:sql:String
  • 入参:limit : long 可省略
  • 入参:offset : long 可省略
  • 返回值:Object 默认返回为Object,如果自定义了分页结果,则返回自定义结果
  • 函数说明:分页查询
return db.page('select * from sys_user');  

# update

  • 入参:sql:String
  • 返回值:Integer
  • 函数说明:执行增删改操作
return db.update('delete from sys_user'); 

# insert

  • 入参:sql:String
  • 入参: id: String,主键列,可空,如无特殊情况不需要传入
  • 返回值: Object
return db.insert("insert into sys_user(username,password) values('admin','admin)");

# call

  • 入参:sql: String
  • 返回值:Map<String,Object>
  • 函数说明:调用存储过程
// 入参格式: #{参数名}
// 出参格式: @{参数名, java.sql.Types的类型字符串}
// 出入参格式:@{参数名(值、变量、表达式), java.sql.Types的类型字符串}
var cs1 = body.cs1;
var cs2 = body.cs2;
return db.call("""
    call test(#{cs1}, @{height(cs2), INTEGER}, @{v_area, VARCHAR})
""")
/**
{
    height: 10,
    v_area: "16.85"
}
*/

# batchUpdate

  • 入参:sql:String
  • 入参: batchArgs: List<Object[]>数据,占位符和数组下标对应
  • 返回值: int
return db.batchUpdate("""
    update sys_dict set is_del = ? where is_del = ?
""", [
    ["1", "0"].toArray()
])

# cache

  • 入参:cacheName:String
  • 入参:ttl:long 缓存有效期,单位毫秒,可省略,默认为配置的值
  • 返回值:db //返回当前实例,即可以链式调用
  • 函数说明:使用缓存
// 使用缓存名为user的查询
return db.cache('user').select('select * from sys_user');

# deleteCache

  • 入参:cacheName:String
  • 返回值:db //返回当前实例,即可以链式调用
  • 函数说明:删除名为cacheName的缓存
// 删除名为user的缓存
db.deleteCache('user');

# transaction

  • 入参:callback:Function,回调函数,可省略

  • 返回值:Object

  • 函数说明:开启事务

  • 自动事务

var val = db.transaction(()=>{
    var v1 = db.update('...');
    var v2 = db.update('....');
    return v2;
});
return val;
  • 手动开启事务
var tx = db.transaction();  //开启事务
try{
    var value = db.update('...');
    tx.commit();    // 提交事务
    return value;
}catch(e){
    tx.rollback();  // 回滚事务
}

# 列名转换

  • normal 列名保持原样
  • camel 列名使用驼峰命名
  • pascal 列名使用帕斯卡命名
  • upper 列名保持全大写
  • lower 列名保持全小写
return db.camel().select('select * from sys_user');

# 单表操作API

操作入口: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
// insert into sys_user(user_name,role) values('李富贵','admin')
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 insert或update的列和值,可省略(通过column设置)
  • 入参: beforeQuery : boolean 是否根据id查询有没有数据,可省略(默认false)
// insert into sys_user(id,user_name) values('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx','王二狗');
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()

# 其它的自己摸索吧,API抄的mybatis-plus,文档写不动了

上次更新: 2025-05-18 02:03:27
http模块

http模块→

Theme by Vdoing | Copyright © 2020-2025 ssssssss.org | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×