java - 如何在词法上检测 sql SELECT 查询?
问题描述
我想检测任何 sql 字符串是否需要基于 a 的返回值SELECT
。
boolean isSelectStatement(sql) {
return !sql.startsWith(sql, "INSERT"
&& !sql.startsWith(sql, "UPDATE")
&& !sql.startsWith("DELETE");
}
因此,以下内容将被检测为 select 语句,这是正确的:
DECLARE @request_id = '10'; SELECT @request_id as foo;
因此,您认为检测任何非 SELECT 语句就足够了吗?是否有任何定义显示任何类型的可能的 SELECT 语句?甚至可以确定是否选择 sql 的库?
解决方案
推荐阅读
- python - 丢弃时间接近的相同 ID 的行
- set - setTitle 在 FormApp.ItemType.TEXT 没有处理表单上的 textitem 的情况下跳过一列接一列
- flutter - 提供者提供空值
- typo3 - 直接路由到 TYPO3 扩展文件
- c# - 提款和余额问题,第二次尝试计算不正确
- html - 仅在 CSS 中通过单击切换更改图标的颜色
- html - 如何找到真实的视口高度?
- google-app-engine - 如何在共享 VPC 中的标准 AppEngine 与另一个标准 AppEngine 之间进行通信?
- reactjs - ReactJS 从 json 数组中选择值
- python-multithreading - 无法使用 pdb 调试耐用规则 python 程序