搞开发,写SQL就够了

Rocket-API

WEB开发框架。传统业务需求,大部分逻辑简单,咱们常说的CRUD,搬砖等,基本可以直接经过写SQL来完成定制开发,关于这部分需求,ROCKET-API提供了解决方案git

取个例子:

表:user(id,name,sex,phone,create_time) 表:book(id,name) 表:user_book(user_id,book_id)sql

需求1:对用户表进行分页查询,必填参数create_time时间范围内,可选参数:name 模糊匹配
在ROCKET-API中实现为:
sql = """
select id,name from user  where create_time between #{startTime} and #{endTime}
?{name,and name like concat('%',#{name},'%')}
"""
db.pager(sql)
完整ROCKET-API中截图:

在这里插入图片描述 在这里插入图片描述

说明:api

  1. sql部分很像mybatis语法,#{}表示参数替换,?{}:表示可选参数替换(与mybatis if语法一致)
  2. db.pager() 将参数与sql进行绑定
  3. 而参数的来源为直接是HTTP请求的参数:http://localhost:8088/user/page?startTime=2020-07-12 00:00:00&endTime=2020-10-12 00:00:00,省略参数接收,VO定义等
需求2:对用户表进行分页查询,返回用户姓名,用户拥有的书籍(多个用逗号分隔),必填参数create_time时间范围内,可选参数:name 模糊匹配
在ROCKET-API中实现为:
sql = """
select t1.name,group_concat(t3.name) books
(
select id,name from user  where create_time between #{startTime} and #{endTime}
?{name,and name like concat('%',#{name},'%')}
) t1 
left join user_book t2 on t1.id = t2.user_id
left join book t3 on t3.id = t2.book_id
group by t1.id
"""
db.pager(sql)

说明:mybatis

  1. 能用SQL搞定的,就坚持不写代码

官方地址: https://gitee.com/alenfive/rocket-api框架

相关文章
相关标签/搜索