现在我有一个方法,是执行SQL语句的(即增、删、改、查操作),传进来的参数是一条字符串的SQL语句,如下:public boolean doSQL(String sql) {
if (如果参数 sql 是增、删、改、查的SQL)
执行 sql
else
return false;
}我想用正则来判断参数 sql 是不是增、删、改、查的SQL,这个正则要怎么写
if (如果参数 sql 是增、删、改、查的SQL)
执行 sql
else
return false;
}我想用正则来判断参数 sql 是不是增、删、改、查的SQL,这个正则要怎么写
Select ... From ...
Delete From ...
Insert Into ...
比较诡异的是:
Select ... From ... Into table --查询出一组数据然后写入表中
但其实一般开发过程中不允许这么玩表的,都会专用存储过程来处理。
恩,我只要判断它第一个词是不是以“INSERT”、“DELETE”、“UPDATE”或“SELECT”开头
也可以在外面简单的判断一下,
大多数的增、删、改都是以insert into, delete, update 开头的,
查询的情况就有很多种了,普通的语句一般用select 开头, 也可以带with () select 开头, 如果是调用存储过程则以call 开头
你可以用sql.startWith("")简单的判断一下
恩,我不想用startWith,我就想用正则,不知道正则要怎么写
if (tmp.startWith("select") || tmp.startWith("delete") || ...)
如果我的sql非常长呢,比如我把一张好几MB的图片转成二进制流insert到数据库,也要toLowerCase()吗
String tmp = sql.trim().substring(0,6).toLowerCase();