日期:2014-05-20  浏览次数:20652 次

判断字符串是不是“INSERT”、“DELETE”、“UPDATE”或“SELECT” SQL语句的正则表达式怎么写?
现在我有一个方法,是执行SQL语句的(即增、删、改、查操作),传进来的参数是一条字符串的SQL语句,如下:


Java code

public boolean doSQL(String sql) {
    if (如果参数 sql 是增、删、改、查的SQL)
        执行 sql
    else
        return false;
}




我想用正则来判断参数 sql 是不是增、删、改、查的SQL,这个正则要怎么写

------解决方案--------------------
建议交给数据库自己去做,然后用try {} catch{},如果DB编译不通过的话会抛出相应的错误,可以通过error code来判断是不是sql编译问题;
也可以在外面简单的判断一下,
大多数的增、删、改都是以insert into, delete, update 开头的,
查询的情况就有很多种了,普通的语句一般用select 开头, 也可以带with () select 开头, 如果是调用存储过程则以call 开头
你可以用sql.startWith("")简单的判断一下
------解决方案--------------------
那就亏了,改为:
String tmp = sql.trim().substring(0,6).toLowerCase();