0

テーブルに表示されるように、テーブル モデルに 2 つのクエリを追加する必要があります。これはサッカー (正確には EPL) の予測を行うプログラムであり、チームがホームとアウェイの両方でプレーしているときに、チームのすべての結果を表示する必要があります。最初のクエリはホームでプレーするすべてのゲームを取得するためのもので、2 番目のクエリはアウェイでプレーするときのものです。コードは次のとおりです。

public void showResultsTotalTeam(){
    deleteAllRows(dTableModel); // deleta all rows in the table
    try {
        conn = DriverManager.getConnection(connection.conn_url, connection.conn_user, connection.conn_pass);// connect to database server
        Statement sqlState = conn.createStatement();// create statement for sql
        String selectStuff = "SELECT games_team1, games_team2, games_winner, games_draw, games_team1_score, games_team2_score, games_month, games_day FROM games WHERE games_team1 = '" + cbxTeam1.getSelectedItem() + "'";// ststement for MySQL
        rows = sqlState.executeQuery(selectStuff);  // execute statement
        String selectStuff2 = "SELECT games_team1, games_team2, games_winner, games_draw, games_team1_score, games_team2_score, games_month, games_day FROM games WHERE games_team2 = '" + cbxTeam1.getSelectedItem() + "'";// ststement for MySQL

        rows2 = sqlState.executeQuery(selectStuff); // execute statement
        Object[] tempRow;// create object array to store queried results
        Object[] tempRow2;

        while(rows.next()){ // while there are still values to be seen to
            tempRow = new Object[]{rows.getString(1), rows.getString(2), rows.getString(3), rows.getString(4), rows.getString(5), rows.getString(6), rows.getString(7), rows.getString(8)};// add data to array
            tempRow2 = new Object[]{rows2.getString(1), rows2.getString(2), rows2.getString(3), rows2.getString(4), rows2.getString(5), rows2.getString(6), rows2.getString(7), rows2.getString(8)};
            dTableModel.addRow(tempRow); // add array to table model
            dTableModel.addRow(tempRow2);
        }

    } catch (SQLException ex) {
        // TODO Auto-generated catch block
        System.out.println(ex.getMessage());
    }
}

現在、このコードは機能せず、何も表示されません。

助けてください?どんなアドバイスも素晴らしいでしょう。

4

2 に答える 2

0

行数 == 行数 2 でない限り、反復処理中に問題が発生する可能性がありますrows.next

また、2 つの異なるブロック、つまり forrowsとfor でコードを繰り返すことをお勧めします。rows2

編集

これも 1 つのクエリで実行できます。

SELECT games_team1, games_team2, games_winner, games_draw, games_team1_score, 
games_team2_score, games_month, games_day FROM games 
WHERE games_team1 = '" + cbxTeam1.getSelectedItem() + "' " 
or games_team2 = '" + cbxTeam1.getSelectedItem() + "' "
于 2013-10-02T04:54:06.590 に答える