`
Aladdin1001
  • 浏览: 15692 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Zql: a Java SQL parser

    博客分类:
  • Java
阅读更多
What is Zql ?

Zql is a SQL parser written in Java.
Zql parses SQL and fills in java structures representing SQL statements and expressions.
Zql can parse all the queries given as examples in the following SQL tutorial (downloaded from geocities.com).

See the Zql API documentation for more info about the Zql structures.

A SQL expression evaluator comes with Zql, so you can easily evaluate SQL expressions out of the parser.
Warning: No warranty !

Zql is no commercial product: feel free to use it, but we provide no warranty.
Zql APIs may be subject to changes, to enrich functionalities or fix bugs.
Click here for any bug report or suggestion.
How to use Zql ?

First of all, download Zql!
Then:
Unpack Zql.tar: tar xvf Zql.tar (or use WinZip if you are a Windows user).
Make your CLASSPATH variable point on the Zql/classes directory.
Type java Zql.ZqlParser, then some SQL statements (like select * from customer;) to make sure Zql is properly installed.
Go in the Zql/demo directory, see the README file and the ZDemo.java program to discover how you can use Zql to write your own SQL application!
Some SQL queries for heavy testing...
Note that java sources are NOT provided in the package, but you can contact me concerning the availability, licensing terms and conditions.
More details

The parser itself is written with JavaCC, a Java parser generator (like Unix's popular yacc generator).
It takes as input SQL statements (select, insert, update, delete, commit, rollback, set transaction), and fills in Java structures that represent the statements it parsed.

Example:
SELECT ANTIQUEOWNERS.OWNERLASTNAME, ANTIQUEOWNERS.OWNERFIRSTNAME
FROM ANTIQUEOWNERS, ANTIQUES
WHERE ANTIQUES.BUYERID = ANTIQUEOWNERS.OWNERID AND ANTIQUES.ITEM = 'Chair';

Will result in a ZqlQuery structure.
ZqlQuery's getSelect(), getFrom() and getWhere() methods will extract the SELECT, FROM and WHERE parts of the query.
getSelect() will return a Vector of ZSelectItem, data structures that give information about the columns and/or operations requested (including SQL expression support, like in SELECT a+b FROM num;).
getFrom() will return a Vector of ZFromItem, data structures that give information about the tables involved in the query.
getWhere() will return a SQL expression, a data structure that represents ANTIQUES.BUYERID = ANTIQUEOWNERS.OWNERID AND ANTIQUES.ITEM = 'Chair' in the example above (the expression evaluator that comes with Zql can evaluate such expressions, for a given data tuple).
分享到:
评论

相关推荐

    ZQL:Zql是用Java编写SQL解析器。 Zql解析SQL并填写表示SQL语句和表达式的Java结构

    ZQL ###贡献 如果您想捐款,请使用以下详细信息与我... Zql is an SQL parser written in Java. Zql parses SQL and fills in java structures representing SQL statements and expressions. Copyright (C) 1998-2012

    java版本的SQL语句解析源代码,包含demo(zql)

    SQL语句解析java包,含源代码: SELECT ANTIQUEOWNERS.OWNERLASTNAME, ANTIQUEOWNERS.OWNERFIRSTNAME FROM ANTIQUEOWNERS, ANTIQUES WHERE ANTIQUES.BUYERID = ANTIQUEOWNERS.OWNERID AND ANTIQUES.ITEM = 'Chair'; ...

    常用SQL语句解析

    ### 常用SQL语句解析 #### SQL指令概述 SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言。本文档将详细解析常用的SQL语句及其应用,并通过实例加深理解。 #### SELECT **功能**: `SELECT` ...

    zql-开源

    "ZQL-开源"是一个专注于SQL解析的Java库,它利用了JavaCC(Java语法规则定义工具)来构建高效的解析引擎。这个项目是完全免费且开放源代码的,遵循GPL v3许可证,这意味着任何个人或组织都可以自由地使用、修改和...

    基于java控制台简单的学生管理系统

    上学时写的一个java简单的学生管理系统,都是一些基础内容,没有使用数据库,通过控制台进行操作,界面如下: ----------你要执行的功能 >---------- 1:添加一个学生 2:查找一个学生 3:根据编号更新学生的...

    zql-ustc-mpi-code-master_并行实现_

    本项目“zql-ustc-mpi-code-master”显然是一个专注于MPI并行编程的代码库,由USTC(中国科学技术大学)的团队创建或维护。下面将详细介绍标题和描述中涉及的并行实现技术,以及可能包含的子文件内容。 1. **MPI...

    spring+hibernate+struts架包

    Spring、Hibernate和Struts是Java开发中的三大主流框架,它们分别负责不同的职责,共同构建了企业级应用的基础架构。Spring作为一个全面的轻量级容器,提供了依赖注入(DI)和面向切面编程(AOP)的功能,使得代码...

    mysql5.5 安装详细图解.pdf

    - **命令行客户端**:用于执行 SQL 命令的工具。 - **命令行实用程序**:如 `mysqldump` 用于备份数据库,`myisamchk` 用于检查 MyISAM 表的完整性等。 #### 三、安装步骤详解 **步骤1:选择安装类型** 安装过程...

    tobealone-zql.github.io

    tobealone-zql.github.io

    CompassIcon.2zql51t7gw.gaXKwbh

    标题“CompassIcon.2zql51t7gw.gaXKwbh”以及描述中的相同文本可能是指一个特定的项目或资源,但没有提供足够的信息来直接解释它与HTML的具体关联。不过,考虑到标签是“HTML”,我们可以推测这可能与一个使用HTML...

    Powerscript语言

    Constant string zql = "this is a book" ``` 8.1.4 变量:变量的值在程序运行过程中可以改变。定义变量时,指定数据类型和变量名。例如: ```powerscript Integer li_xing = 10, li_to = 505 Double team = 1234....

    LollyDemo, 实时观察 Android 应用 日志的一种新方法.zip

    LollyDemo, 实时观察 Android 应用 日志的一种新方法 实时观察 Android 应用 日志的一种新方法。 :如何包括将库添加到模块 build.gradle:dependencies { implementation 'com.zql.android:lolly:2.0'

    ExcelParseMapper_20191005.zip

    基于SpringMVC+maven的excel上传解析简单示例。主要使用poi,RequestMapping,fileupload,原文:https://blog.csdn.net/mr_zql/article/details/100588356

    综采工作面超前支架安装及应用

    根据工作面两巷顶板特征,选用了支护强度高、支护面积大、支护速度快、操作维护简便的ZQL2×5000/21/40型两列交替自移式支架,机、风巷分别采用双列背、对向安装。其成功应用改变了芦岭矿传统的抹帽挑棚超前支护方式,...

    密码学基础课件:第二讲 古典密码学-1.ppt

    ... ... ... ...* P 是一个非空有限...一个密码系统就是在 f 和密钥 k 作用下,由 ZqL→Zq‘L’ 的映射。或一个密码系统就是以 Zq‘L’中的元素代换 ZqL 中的元素,在这意义下,称这种密码为代换密码(Substitution Cipher)。

    lzqfilepicker

    implementation ' com.zql.filepickerlib:filepickerlib:1.0.5 ' } 通话方式 1,调起文件选择页面 startActivityForResult(intent,CODE_GOT_STORAGE_FILES) 2,结果通过result的形式返回结调用方 super....

    C# 制作的Linux一站式镜像下载工具

    下载链接: 蓝奏云:https://gfdgdxi.lanzous.com/b01nzac9g,密码:55pu ...百度网盘:https://pan.baidu.com/s/1JaSinaQojuPWTb077Zql8g,提取码:z1iq Gitee:https://gitee.com/gfdgd-xi/linux-download-tools

    MySQL5.5 安装步骤详细图解

    对于那些对SQL Server 2005等其他数据库管理系统有不佳体验的用户来说,MySQL 5.5提供了一个更加稳定且易于管理的选择。 #### 安装环境与版本信息 - **操作系统**: Windows 7 64位家庭普通版 - **MySQL版本**: ...

    css界面制作文档

    - `table#a`: 选择器指定了ID为`a`的表格,并设置了相对定位、宽度、高度、左对齐、显示空单元格以及边框合并等属性。 - `border-collapse:collapse;`属性使表格边框合并为单一的线条,避免了多重边框的出现。 4....

Global site tag (gtag.js) - Google Analytics