Java 判断Sql语句是否包含写操作
时间: 2023-06-29 13:03:02 浏览: 52
可以使用正则表达式来判断Sql语句是否包含写操作,以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SqlUtils {
public static boolean isWriteSql(String sql) {
// 匹配insert、update、delete等写操作的正则表达式
String regex = "(?i)\\b(insert|update|delete|replace|truncate)\\b.*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(sql);
return matcher.matches();
}
}
```
使用示例:
```java
String sql = "SELECT * FROM users WHERE id = 1";
boolean isWrite = SqlUtils.isWriteSql(sql); // false
sql = "INSERT INTO users (name, age) VALUES ('Tom', 20)";
isWrite = SqlUtils.isWriteSql(sql); // true
```
相关问题
java 判断 sql语句结尾是否包含limit
可以使用Java的String类的endsWith()方法来判断SQL语句结尾是否包含limit。具体实现可以参考以下代码:
```java
String sql = "select * from table limit 10";
if(sql.toLowerCase().trim().endsWith("limit")) {
System.out.println("SQL语句结尾包含limit");
} else {
System.out.println("SQL语句结尾不包含limit");
}
```
这里使用了toLowerCase()方法将SQL语句转换为小写形式,trim()方法去除字符串前后的空格,endsWith()方法判断字符串是否以"limit"结尾。
判断字符串里是否包含sql语句java代码
可以通过正则表达式来判断字符串是否包含SQL语句,示例代码如下:
```
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SqlStringChecker {
public static boolean containsSql(String input) {
// 匹配SQL语句的正则表达式
String regex = "(?i)(select|update|delete|insert|create|alter|drop|truncate)\\s+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
return matcher.find();
}
public static void main(String[] args) {
String input = "SELECT * FROM users WHERE id = 1;";
if (containsSql(input)) {
System.out.println("字符串包含SQL语句");
} else {
System.out.println("字符串不包含SQL语句");
}
}
}
```
这段代码使用了正则表达式来匹配包含一些关键字(如 select、update、delete 等)的字符串。如果有匹配项,则认为字符串包含SQL语句。