извлечение данных из SQL-запроса - PullRequest
0 голосов
/ 08 ноября 2010

ЕСЛИ у меня есть запрос вроде:

Затем, делая это, я должен написать каждую запись из таблицы, чтобы получить вывод.Как

Теперь, Как я получаю все записи моего полета таблицы.У меня есть 2 столбца в нем ..

Ответы [ 4 ]

1 голос
/ 08 ноября 2010

Как только у вас есть ResultSet , вам придется повторить его следующим образом:

PreparedStatement ps = null;
ResultSet rs = null;
List<Flight> flightList = null;

try {
    String Query = "select * FROM flights WHERE flight_no=? ";
    ps = connection.prepareStatement(query);
    ps.setString(1,"CSC585")
    rs = s.executeQuery();

    if (rs != null) {
        flightList = new ArrayList<Flight>();

        while (rs.next()) { //Moves the cursor from 1 to N
            flightList.add(mapResultSet(rs)); //Write your own mapper....
        }
    }
} catch (SQLException e) {

} finally {
    //First close the ResultSet, then the PreparedStatement
    if (rs != null) {
        try {
            rs.close();
            rs = null;
        } catch (SQLException e) {}
    }

    if (ps != null) {
        try {
            ps.close();
            ps = null;
        } catch (SQLException e) {}
    }
}


Flight mapResultSet(ResultSet rs) throws SQLException {
    Flight flight = null;

    if (rs != null) {
        flight = new Flight();

        flight.setFlightNo(rs.getString("flight_no")); //Column Name as per your SQL table
    }

    return flight...
}

Имейте в виду: как только вы закончили , используя PreparedStatementи ResultSet, закройте ваш ResultSet сначала , а затем PreparedStatement / * Заявление *.

1 голос
/ 08 ноября 2010

Читать о ResultSet .Код может выглядеть так:

while (rs.next())
    {
    String fld1 = rs.getString("column_name1");
    int fld2 = rs.getInt("column_name2");
    ...
    }
1 голос
/ 08 ноября 2010

Предполагая, что оба столбца имеют тип String/Varchar.

List<Flight> flights = new ArrayList<Flight>();
while(rs.next()){
    Flight flight = new Flight();
    flight.setColumn1(rs.getString(1));   // Its better to use column name instead to avoid any unexpected bug
    flight.setColumn2(rs.getString(2));   // Its better to use column name instead to avoid any unexpected bug 
}

PS Лучше указать столбцы для выборки в вашем запросе, т.е. select COL1, COL2,... from....

0 голосов
/ 08 ноября 2010

Наиболее удобный (и наименее подверженный ошибкам) ​​способ, вероятно, заключается в использовании JdbcTemplate Spring:

Пример кода Spring:

List<Actor> actors = this.jdbcTemplate.query(
        "select first_name, last_name from t_actor",
        new RowMapper<Actor>() {
            public Actor mapRow(ResultSet rs, int rowNum) throws SQLException{
                Actor actor = new Actor();
                actor.setFirstName(rs.getString("first_name"));
                actor.setLastName(rs.getString("last_name"));
                return actor;
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...