Java Statement一次执行多条sql语句

网上的代码基本上没有问题,不过会存在一点瑕疵没有说清楚,导致试验了很久才成功,现在总结需要如下:

1.我们看了statement的execute文档,是可以进行多个语句执行的,文档内容如下:

Java Statement一次执行多条sql语句_第1张图片

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();
    }
}



你可能感兴趣的:(java)