Lista zadań na zajęcia, semestr letni 2013/2014, zestaw X
Transkrypt
Lista zadań na zajęcia, semestr letni 2013/2014, zestaw X
Lista zadań na zajęcia, semestr letni 2013/2014, zestaw X Bezpośrednia obsługa bazy danych (JDBC) Przemysław Krysztowiak, [email protected] Celem zadania jest napisanie programu do gromadzenia filmografii aktorów, działającego w oparciu o bazę danych SQLite. Program umożliwia: (a) dodawanie nowych aktorów (imię, nazwisko), (b) dodawanie filmów, w których wystąpił dany aktor (tytuł filmu), (c) wybieranie aktorów, by zobaczyć powiązane z nimi filmy. Program korzysta z dwóch tabel: (a) create table if not exists aktorzy(id integer primary key autoincrement, imie text not null, nazwisko text not null) (b) create table if not exists filmy(id_aktora integer, tytul text not null, foreign key(id_aktora) references aktorzy(id)) (należy je utworzyć z poziomu programu). Nawiązanie połączenia z bazą: Class.forName("org.sqlite.JDBC"); connection = DriverManager.getConnection("jdbc:sqlite:baza.db"); Przykład pobrania filmów aktora o zadanym id_aktora: String sql = "SELECT tytul FROM filmy WHERE id_aktora = ?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setInt(1, id_aktora); ResultSet rs = statement.executeQuery(); filmy = new ArrayList<String>(); while(rs.next()) { String film = new String((rs.getBytes("tytul"))); filmy.add(film); } Reszta zapytań jest analogiczna (przy wstawianiu danych do bazy wystarczy wywołać executeUpdate zamiast executeQuery). Obsługa przycisków jest oczywista. Po zmianie ComboBox-a lub dodaniu nowego filmu należy odświeżyć listę filmów wybranego aktora. Program powinien obsługiwać wyjątki i wypisywać komunikaty na ekranie. Otwarte połączenia należy pozamykać. Wyrażam zgodę na drukowanie przez studentów i pracowników WMiI UMK treści zawartej w niniejszym pliku.