ЕСЛИ У меня есть запрос, как:извлечения данных из SQL запроса
Затем, делая это, я должен написать каждый элемент из таблицы, чтобы получить выход. как
Теперь, как я получаю все записи в моем полете. У меня есть 2 столбца в нем.
ЕСЛИ У меня есть запрос, как:извлечения данных из SQL запроса
Затем, делая это, я должен написать каждый элемент из таблицы, чтобы получить выход. как
Теперь, как я получаю все записи в моем полете. У меня есть 2 столбца в нем.
Предполагая, что обе колонки имеют тип 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
}
P.S. Его лучше указать столбцы для извлечения в ваш запрос, т. Е. select COL1, COL2,... from....
Для вашего решения, используя индексирование на 'getString', разработчик перечисляет все соответствующие столбцы в SQL. SQL-тип SELECT * никогда не будет работать для поиска индексирования. –
@ The Elite Gentleman: Когда вы перечисляете все столбцы, как я сам предлагал, то кому нужны индексы для получения значений. :) –
в моей таблице, у меня есть varchar, char, time, decimal .... Могу ли я использовать этот метод? –
Подробнее о ResultSet. Код может выглядеть следующим образом:
while (rs.next())
{
String fld1 = rs.getString("column_name1");
int fld2 = rs.getInt("column_name2");
...
}
Самый удобный (и наименее подвержены ошибкам) способ, вероятно, использовать Spring в JdbcTemplate абстракцию:
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;
}
});
После у вас есть 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/* Заявление *.
Не стесняйтесь. Используйте ctrl + K для форматирования кода при отправке вопросов. –