русский
Germany.ruForen → Архив Досок→ Programmierung

Помогите со студенческой задачей JDBC + Postgre

01.02.21 07:18
Re: Помогите со студенческой задачей JDBC + Postgre
 
koder патриот
koder
in Antwort Guinevra 31.01.21 22:16, Zuletzt geändert 01.02.21 13:46 (koder)
То есть вот это для меня немного по-китайски:

Абстрагируйтесь. Без разницы, как вы создали соединение, без разницы, какое оно, просто используйте его.

1. набишите функцию initDb. в нее поместите код

Class.forName("org.postgresql.Driver");

Этот код будете вызывать только один раз, при старте проги.


2 . Напишите функцию

Set getTakeoffs(String iata) throws SQLException

Обратите вниманиe, что у нее нет параметра "Connection"


Задача у этой функции открыть соединение, вызвать другую функцию, которая собственно и получит данные из Базы данных и закрыть соединение.Я уберу обработку исключений для простоты


Set<Object> getTakeoffs(String iata) throws SQLException{

    conn = DriverManager.getConnection(DB_URL, USER, PASS);

    return getTakeoffs(iata, conn );

    // !!!! finally block used to close resources
    conn.close();
}


3. Напишите функцию

Set getTakeoffs(String iata, Connection dbConnection) throws SQLException

Обратите вниманиe, что у нее есть параметр "Connection".

И что именно ее мы вызвали, когда писали getTakeoffs(iata, conn );


Set<Object> getTakeoffs(String iata, Connection dbConnection) throws SQLException{

      Set<Object> result = new HashSet<>();            

      stmt = conn.createStatement();
      String sql = "SELECT * FROM FLUG";
      stmt.executeQuery(sql);
      ResultSet rs = stmt.executeQuery(query);
      Здесь заполнение списка "result" из ResultSet
      // !!!! finally block used to close resources 
      stmt.close();
      return result;    
}


 

Sprung zu