执行多个SQL查询并在Java中获取ResultSet

时间:2014-11-16 00:45:36

标签: java mysql

我正在尝试使用SELECT作为最后一个执行一些SQL查询。查询具有此结构(示例):

SET @var = "test";
SELECT @var;

首先我需要设置一些变量,然后用它们做一个SELECT并得到结果。这是我的非工作代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class sample2 {

    public static void main(String[] args) {
        try {

            // database connection
            Connection dbconn;
            Class.forName("com.mysql.jdbc.Driver");
            String connection_url = "jdbc:mysql://localhost/db?user=root&allowMultiQueries=true";
            dbconn = DriverManager.getConnection(connection_url);

            // execute query & get ResultSet
            String sql = "SET @var = ?;SELECT @var col;";
            PreparedStatement stmt = dbconn.prepareStatement(sql);
            stmt.setString(1, "test");
            stmt.execute();
            ResultSet rs = stmt.getResultSet();

            // display data
            rs.absolute(1);
            System.out.println(rs.getString(1));

            // close resources
            rs.close();
            stmt.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}

不幸的是,ResulstSet rs为空,因此代码以错误java.lang.NullPointerException结束。我怎么能这样做?

我必须注意到我一直在寻找其他解决方案,例如批处理执行,但在这种情况下我无法将多个查询拆分为单独的查询并以批处理方式执行

0 个答案:

没有答案