1

Java と MySQL を使用して Web アプリケーションに取り組んでいます。

データベース内のさまざまなテーブルに基づいて、それぞれの列名の ArrayList を返すメソッドを作成しました。

しかし、メソッドをデバッグすると、while(rs.next())原因がエラーであることがわかりました。こちらのサイトを参考にしたので、何がいけなかったのかわかりません。

これがコードです。ありがとう。

// Returns the the all the columns in the table
public ArrayList getColumnName(String tableName) throws SQLException {
    ResultSet rs = null;
    List<String> columnName = new ArrayList<String>();

    Statement st = null;
    Connection con = null;

    try {
        // Get a connection from the connection factory
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/information_schema", "root", "xxxx");

        // Create a Statement object so we can submit SQL statements to the driver
        st = con.createStatement();

        StringBuilder sql = new StringBuilder("SELECT column_name FROM information_schema.columns " +
                "WHERE table_schema = 'testDB' AND table_name = '");

        sql.append(tableName).append("'");

        rs = st.executeQuery(sql.toString());

        while (rs.next()) { // getting error..
            columnName.add(rs.getString("column_name"));
        }

    } catch (SQLException ex) {
        Logger.getLogger(ModificationPage.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        if (con != null || st != null) {
            st.close();
            con.close();
        }
    }

    return (ArrayList) columnName;
}
4

2 に答える 2

1

それで、例外は決して起こりませんか?

その場合はクエリエラーがスローされるはずrs = st.executeQuery(sql.toString())ですが、それが実行されwhileて反復されなかった場合は、空の結果セットが原因です

たぶん、クエリに間違った引数を渡していますか?

于 2013-07-04T03:36:19.567 に答える