网上的代码基本上没有问题,不过会存在一点瑕疵没有说清楚,导致试验了很久才成功,现在总结需要如下:
1.我们看了statement的execute文档,是可以进行多个语句执行的,文档内容如下:
2.除了执行execute方法之外,我们还需要在连接jdbc的时候增加allowMultiQueries=true的属性
3.代码如下:
public class Test {
public static void main(String[] args){
try {
test1();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void test1() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myschool?characterEncoding=utf-8&allowMultiQueries=true", "root", "1234");
Statement statement = conn.createStatement();
String no = "abc';select * from student where '1' = '1";
String sql = "select * from student where studentno = '"+no+"'";
boolean b = statement.execute(sql);
while(true){
if(b){
System.out.println("第一句");
}else{
if(statement.getUpdateCount() != -1){
System.out.println("第二局");
}else{
break;
}
}
b = statement.getMoreResults();
}
conn.close();
}
}