「javasql识别」java 识别
今天给各位分享javasql识别的知识,其中也会对java 识别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java访问数据库时传入的sql中包含的LIKE字段无法被识别
- 2、java 验证字符串是否为sql语句 并且是否包含 select 关键字
- 3、java.sql.SQLException: 'varchar' 不是可以识别的 函数名.
Java访问数据库时传入的sql中包含的LIKE字段无法被识别
请把args[0] = "%1382%";改成双引号里面带单引号的字符串,如下
args[0] = "'%1382%'";
java 验证字符串是否为sql语句 并且是否包含 select 关键字
java验证字符串是否为sql语句,是否包含select关键字,主要使用的是正则表达式来进行验证,如下:
import java.util.*;
import java.text.*;
class sqltest
{
public static void main(String[] args)
{
String span="select aaaa.id name ,hello ,type t,h from datas aaaa,city b where a.id=b.id and c like 'e%' and name is null ";
span=span.toUpperCase();//测试用sql语句
System.out.println(span);
String column="(\\w+\\s*(\\w+\\s*){0,1})";//一列的正则表达式 匹配如 product p
String columns=column+"(,\\s*"+column+")*"; //多列正则表达式 匹配如 product p,category c,warehouse w
String ownerenable="((\\w+\\.){0,1}\\w+\\s*(\\w+\\s*){0,1})";//一列的正则表达式 匹配如 a.product p
String ownerenables=ownerenable+"(,\\s*"+ownerenable+")*";//多列正则表达式 匹配如 a.product p,a.category c,b.warehouse w
String from="FROM\\s+"+columns;
String condition="(\\w+\\.){0,1}\\w+\\s*(=|LIKE|IS)\\s*'?(\\w+\\.){0,1}[\\w%]+'?";//条件的正则表达式 匹配如 a=b 或 a is b..
String conditions=condition+"(\\s+(AND|OR)\\s*"+condition+"\\s*)*";//多个条件 匹配如 a=b and c like 'r%' or d is null
String where="(WHERE\\s+"+conditions+"){0,1}";
String pattern="SELECT\\s+(\\*|"+ownerenables+"\\s+"+from+")\\s+"+where+"\\s*"; //匹配最终sql的正则表达式
System.out.println(pattern);//输出正则表达式
System.out.println(span.matches(pattern));//是否比配
}
}
java.sql.SQLException: 'varchar' 不是可以识别的 函数名.
你用的是那个数据库,如果哦是oracle的话,这个函数名是没有的,只有varchar2()
javasql识别的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 识别、javasql识别的信息别忘了在本站进行查找喔。
发布于:2022-12-20,除非注明,否则均为
原创文章,转载请注明出处。