Skip to main content
Glama
01.db.md6.55 kB
--- title: "db模块" date: "2022-01-30T10:20:16.000Z" permalink: "/pages/module/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,文档写不动了

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dwsy/magic-api-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server