1

こんにちは、次のようなクエリを実行するためにactionPerformedを含むこのクラスがあります

    MysqlConnect db = new MysqlConnect();

@Override
public void actionPerformed(ActionEvent e) {

    if(e.getSource() == openKnop) {

             try {

                db.connectToAndQueryDatabase("test", "root", "root");
                System.out.println("connection established");

                Statement st = db.createStatement();
                String query = "SELECT id, name, job_id, location FROM person WHERE name = 'Tom Swift'";
                st.executeQuery(query);

                System.out.println("Selected query succesfull");


            } catch (SQLException e1) {
                e1.printStackTrace();
            }
             finally {
                 db.closeCon();
                    System.out.println("connection closed");
             }
    }

および mysqlConnect(); クラスはこんな感じ

    public class MysqlConnect{

    protected Connection con;

    public void connectToAndQueryDatabase(String database, String username, String password) throws SQLException {
        con = null;
            try {
                con = DriverManager.getConnection(
                                     "jdbc:mysql://localhost:3306/" + database,
                                     username,
                                     password);
            } catch (SQLException e) {
                e.printStackTrace();
            }
    }

    public void closeCon() {
        con = null;
    }
}

しかし、問題はラインにあります

ステートメント st = db.createStatement();

私が期待したようには機能しません。未定義のエラーが発生しました..どうすれば解決できますか?

4

1 に答える 1

3

このエラーはdb、「MysqlConnect 」の参照にメソッドがないことを示していますcreateStatement。Connection オブジェクトが必要です。ConnectionconnectToAndQueryDatabaseオブジェクトを返すようにします

 public Connection connectToAndQueryDatabase(String database, String username, String password) throws SQLException {
//your code

return con;
}

と :

Connection conn = db.connectToAndQueryDatabase("test", "root", "root");
                System.out.println("connection established");

                Statement st = conn.createStatement();
                String query = "SELECT id, name, job_id, location FROM person WHERE name = 'Tom Swift'";
                st.executeQuery(query);
于 2012-12-25T16:28:11.223 に答える