对于熟悉使用SQL的人来说,可能没有什么比直接使用SQL更简单的方式来获取数据了。 但是非技术人员,看到SQL可能就像看天书了。
**_我实现了一个简版的中文查询的DSL,下面我们通过一个实例,来讲解一下这个DSL,以及他是如何实现的!
_**
实例
==
从技术上讲,这也是一门DSL,只是用中文来做了关键字。下面我们来看一个实例:
查询 {
本次 使用 数据库{
// username="1"
// password="1"
// url="jdbc:mysql://localhost:3306/1"
// driver="com.mysql.jdbc.Driver"
}
本次 表 组("gtp_user","gtp_user_role")
本次 字段 组("gtp_user.name","gtp_user_role.role_id")
本次 条件 "gtp_user.name = 'admin'"
本次 聚合 组("gtp_user.name","gtp_user_role.role_id")
本次 排序 组("gtp_user_role.role_id")
本次 截取 (1 到 11)
} 画 线图
下面我们来逐步解析这个案例,首先构建一个查询,这其实是在构建一个查询对象,在这个查询对象的作用域内,本次代表当前的查询。
说明
==
首先需要指定使用的数据库,本次 使用 数据库 {} 里面可以使用你自己的数据源,去掉注释,修改成你自己的数据源即可。目前只设置了基础属性。
现在支持的查询谓词: 表、字段、条件、聚合、排序、截取
支持的动作谓词: 画(线图、饼图、表)、转 (CSV、HTML、JSON)
其他: 组、到
表:用来设置查询的表,输入 表名,必填属性,需要使用双引号括起来。可与组联用。
字段:用来设置查询字段,输入 表名.字段名 ,必填属性,需要使用双引号括起来。可与组联用。
条件:用来设置查询条件表达式,暂时只能将所有条件一起输入, 可选属性,需要使用双引号括起来。
聚合:用来设置查询的聚合字段,输入 表名.字段名, 可选属性,需要使用双引号括起来。可与组联用。
排序:用来设置查询的排序字段,输入 表名.字段名, 可选属性,需要使用双引号括起来。可与组联用。
截取 :用来设置查询的结果集数量,输入 数字,例如:到 10,就是取前10条,或是输入 (数字 到 数字) , 例如: (5 到 10),获取从第五条开始的10条数据。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新