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
- sql部分很像mybatis语法,#{}表示参数替换,?{}:表示可选参数替换(与mybatis if语法一致)
- db.pager() 将参数与sql进行绑定
- 而参数的来源为直接是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
- 能用SQL搞定的,就坚持不写代码