Informatyka Stosowana – ROK II / III PROGRAMOWANIE W JAVA Informatyka Stosowana – ROK II / III Laboratoria mgr inż. Krzysztof Bzowski
Informacje wstępne Zarządzanie bazą danych (interfejs www) http://kisim-vm.no-ip.eu:58316/phpmyadmin Adres serwera MySQL (do połącznia z JAVY lub innego narzędzia bazodanowego) Adres: kisim-vm.no-ip.eu port:14954 Nazwa bazy danych jest taka sama jak nazwa użytkownika Biblioteka dla połączeń MySQL: Instalator: http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-gpl-5.1.35.msi Sama Biblioteka: http://home.agh.edu.pl/~kbzowski/2015_JAVA/mysql-connector-java-5.1.35-bin.jar
Bazy danych - wstęp Relacyjne bazy danych zbudowane są z tabel oraz relacji. Tabela przechowuje dane w rekordach. Relacja określa zależności pomiędzy tabelami. Tabelę w bazie danych można utożsamiać z tabelą w aplikacji Excell, gdzie każda kolumna przechowuje pewny typ danych, a każdy wiersz stanowi jeden rekord (konkretne dane). Id Imie Nazwisko Ocena 1. Jan Kowalski 4.5 2. Damian Krakowski 5.0 3. Anna Małopolska
Bazy danych - wstęp Każda kolumna w tabeli może przechowywać dane określonego typu. Każda tabela powinna zawierać klucz podstawowy. INT Dane liczbowe FLOAT DOUBLE VARCHAR(X) Tekst długości X TEXT Tekst dowolnej długości DATETIME Data i czas BOOLEAN Wartość logiczna
Bazy danych - SQL Do operacji na bazie danych służy specjalny język SQL (Structured Query Language) przypominający język rzeczywisty.
Bazy Danych SQL Dodawanie Pobieranie
Bazy Danych SQL Pobieranie danych
Bazy Danych SQL Usuwanie Aktualizcja
Bazy danych – JAVA - Połączenie public static Connection getConnection() throws SQLException { String host = "mysql://kisim-vm.no-ip.eu:14954"; String db = "java_is3"; String connectionString = "jdbc:" + host + "/" + db; String username = "java_is3"; String password = "java_is3"; Connection conn = DriverManager.getConnection(connectionString, username, password); return conn; }
Bazy danych – JAVA - INSERT public static int insert(Connection conn, String imie, String nazwisko, float ocena) throws SQLException{ if (conn.isValid(10)) { PreparedStatement stmt = conn.prepareStatement("INSERT INTO `Uczniowie` (`Imie`, `Nazwisko`, `Ocena`) VALUES (?, ?, ?)"); stmt.setString(1, imie); stmt.setString(2, nazwisko); stmt.setFloat(3, ocena); int rows = stmt.executeUpdate(); return rows; } return 0;
Bazy danych – JAVA - SELECT public static void selectAll(Connection conn) throws SQLException{ if (conn.isValid(10)) { Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM `Uczniowie`"); while (rs.next()) { int id = rs.getInt("id"); String imie = rs.getString("Imie"); String nazwisko = rs.getString("Nazwisko"); float ocena = rs.getFloat("Ocena"); System.out.printf("%d\t%s %s\t %.1f\n", id, imie, nazwisko, ocena); }
Pobranie identyfikatorów dodanych obiektów public static int insert(Connection conn, String imie, String nazwisko, float ocena) throws SQLException{ if (conn.isValid(10)) { PreparedStatement stmt = conn.prepareStatement("INSERT INTO `Uczniowie` (`Imie`, `Nazwisko`, `Ocena`) VALUES (?, ?, ?)", PreparedStatement.RETURN_GENERATED_KEYS); stmt.setString(1, imie); stmt.setString(2, nazwisko); stmt.setFloat(3, ocena); int rows = stmt.executeUpdate(); ResultSet keyResultSet = stmt.getGeneratedKeys(); if (keyResultSet.next()) { int noweId = (int) keyResultSet.getInt(1); System.out.printf("Rekord dostal id: %d", noweId); return noweId; } return 0;
printf i zmienne float Domyślne zmienne środowiskowe ustawień regionalnych, spowodują, że: System.out.printf("%f", 0.5f); // 0,5 Locale.setDefault(Locale.US); // raz na początku funkcji main System.out.printf("%f", 0.5f); // 0.5
Stworzyć bazę danych samochodów. Bazy danych Stworzyć bazę danych samochodów. Tabela samochód powinna zawierać następujące pola: Marka (string) Model (string) Rok produkcji (int) Przebieg (float) Powypadkowy (boolean)
Bazy danych - interfejs Stworzyć klasę samochód oraz metody pozwalające na zapis do bazy, odczyt, edycję, wypisywanie elementów spełniających kryteria: Rok produkcji – od/do Przebieg – od/do Powypadkowy – prawda/fałsz Stworzyć interfejs użytkownika w wybranej technologii.