「javasql识别」java 识别

博主:adminadmin 2022-12-20 05:12:06 64

今天给各位分享javasql识别的知识,其中也会对java 识别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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识别的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-20,除非注明,否则均为首码项目网原创文章,转载请注明出处。