问题标签 [jsqlparser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 JSQLParser 识别 SQL 中的函数调用
如何使用 JSQLParser 区分函数调用和字段名称?
例如,查询SELECT COUNT(*) FROM db.table
解析COUNT(*)
为字段名称而不是函数调用。
我需要做什么来更改 SQL 解析以显示COUNT(*)
为函数调用?
谢谢,
最大限度
java - 如何使用 JSQLPARSE 从 SQl 中检索表名和列名
我是第一次使用 JSQLPARSER。我有一些动态出现的 SQL 文件,我需要从该 SQL 中读取表名和列名。经过大量谷歌搜索后,我尝试使用 JSQLPARSER。我正在尝试从文件中读取列名,但由于表达式而无法读取列名,请任何人纠正我出错的代码。我得到 CLASSCASTEXCEPTION 代码:
java - 使用 JSQLParser 从项目中提取多个
我正在编写一个 SQL 查询评估器,并且我正在使用 JSQLParser 来解析查询。现在看来(并且也通过此链接http://sourceforge.net/p/jsqlparser/feature-requests/2/建议)JSQLParser 不允许 SQL 的 FROM 子句中的多个项目。
当我做
where statement 是 type 的对象PlainSelect
,我只从 FROM 子句中获得第一个表名。FromItem 类中没有toArray()
方法。
有什么解决方法吗?
java - 请帮助修复 CCJSqlParser 异常
我使用 CCJSqlParser 来解析 sql。我会遇到致命的问题。
我的java代码如下
例外情况如下:
jsqlparser - 请帮助解决 CCJSqlParser 问题
我使用下面的代码来获取选定的列。但是在列项中,为什么 table.getName() 是别名 t1 或 t2 而 table.getAlias() 为空?
是否有任何示例代码可以同时获取表名(Spark_Test_1,Spark_Test_2)和别名表名(t1,t2)?
java - javac CLASSPATH 问题
这似乎是非常微不足道的。但我被困了一段时间。
我的CLASSPATH
:
输出ll
:
我的test.java
文件:
输出javac
:
下面的命令也会产生同样的错误:
jsqlparser 的来源:http: //jsqlparser.sourceforge.net/docs/
有人可以帮我解决这个问题吗?我也尝试在 IntelliJ 上使用这个库,但没有得到认可。我遵循了添加外部库的标准过程,如:如何在 IntelliJ IDEA 中添加外部库?
FWIW 我使用tmux
. 希望这不是 CLASSPATH 问题的问题。
java - 我怎样才能使这个 JAVACC 语法与 [] 一起工作?
我正在尝试更改 JSqlParser 项目中的语法,该项目处理指定标准 SQL 语法的 javacc 语法文件 .jj。我很难让一个部分工作,我把它缩小到以下,大大简化了语法。
基本上我有一个定义 Column : [table ] 。场地
但表本身也可以包含“。” char,这会导致混乱。
我直观地认为以下语法应该接受以下所有句子:
选择 mytable.myfield
选择我的领域
选择 mydb.mytable.myfield
但实际上它只接受上面的第 2 和第 3。每当它看到“.”时,它就会进入要求 2 点版本的表格(即表格的第一推导规则)
我怎样才能使这个语法起作用?
非常感谢杨
java - 从JAVA中的sql语句获取表名和查询类型
我是 jsqlparser 的新手,并试图解析 sql 语句以获取表名及其查询类型(在 Java 中)。
例如 1。
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany'
从这个查询中,我想得到表名Suppliers
和它的查询类型SELECT
。
同样,表名Suppliers
及其查询类型INSERT
。
例如 2。
UPDATE CUSTOMERS SET SALARY = SALARY * 0.25
WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >= 27 )
从这个查询中,我想得到表名CUSTOMERS_BKP
和它的查询类型SELECT
。
同样,表名CUSTOMERS
及其查询类型UPDATE
。
例如 3。
UPDATE CUSTOMERS SET SALARY = SALARY * 0.25
WHERE AGE IN (SELECT AGE FROM CUSTOMERS WHERE AGE >= 27 )
(我知道这个查询可以简化,但是例如我在这里粘贴了。)
从这个查询中,我想获取表名CUSTOMERS
及其查询类型SELECT
。
同样,表名CUSTOMERS
及其查询类型UPDATE
。
注意:这里的表名相同但查询类型不同。
同样,我想为任何复杂的 sql 查询获取表名及其查询类型。
你能帮我解决这个问题吗?
如果您希望我提供任何详细信息,请发表评论。
java - 是否可以使用 JSQLParser 屏蔽 SQL 语句的 where 子句中的值?
我必须屏蔽或删除我的 sql 语句的 where 子句中的值。我正在使用 JSQL 解析器进行解析。有什么方法可以实现吗?
java - Java 的 SQL 查询解析器
我正在寻找用于 MySQL 查询的 SQL 查询解析器。使用它我可以解析查询、修改查询对象并打印回修改后的查询
JSQL Parser 正是我所需要的,但它有 2 个主要问题,同时在列值中转义单引号 https://github.com/JSQLParser/JSqlParser/issues/167 https://github.com/JSQLParser/JSqlParser/issues/166
所以我正在寻找可以帮助我完成任务的开源替代品
我试过的 Presto-parser 无法解析更新查询
如果其他人知道任何其他可靠的 SQL 解析库,请告诉我