Kod do wykładu 7
Slajdy z wykładu są uzupełniane przez przykłady wykorzystania omawianych funkcjonalności. Poniżej spis dostępnych przykładów.
Wykład 7 - Bazy danych
- Język SQL, tworzenie i wypełnianie testowej tabeli.
DROP TABLE IF EXISTS TEST; CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255)); INSERT INTO TEST VALUES(1, 'Hello'); INSERT INTO TEST VALUES(2, 'World'); SELECT * FROM TEST ORDER BY ID; UPDATE TEST SET NAME='Hi' WHERE ID=1; DELETE FROM TEST WHERE ID=2;
- Tworzenie nowej bazy danych (H2)
public static void main(String[] args) throws SQLException { Connection conn = null; try { conn = DriverManager.getConnection("jdbc:h2:nazwabazy", "sa", ""); // Nazwa uzytkownika to "sa" a dostep jest bez hasla - "" // Proba podlaczenia do bazy H2, ktora nie istnieje // domyslnie powoduje utworzenie nowej instancji pustej bazy // (w postaci pliku z rozszerzeniem *.db, np. nazwabazy.h2.db) // Dymyslne tworzenie pustej bazy danych czasem moze generowac bledy, // dlatego mozliwe jest wylaczenie domyslnego tworzenia pustej bazy // conn = DriverManager.getConnection( "jdbc:h2:nazwabazy5;IFEXISTS=TRUE", "sa", ""); } finally { if (conn!= null){ conn.close(); } } }
- Tworzenie tabeli w bazie danych z poziomu Javy
public static void main(String[] args) throws SQLException { Connection conn = null; try { conn = DriverManager.getConnection("jdbc:h2:nazwabazy", "sa", ""); // domyslnie nazwa uzytkownika to "sa" a dostep jest bez hasla - "" Statement statement = conn.createStatement(); // Usuwanie tabeli jeśli już istnieje - kolejne uruchomienie przykladu nie wygeneruje bledu: statement.executeUpdate("DROP TAB.LE IF EXISTS `waluty`;"); // Uwaga - usunąć kropkę z "table"! // Tworzenie tabeli o okreslonej strukturze danych statement.executeUpdate("CREATE TABLE `waluty` ("+ "`Id` int(6) unsigned NOT NULL auto_increment,"+ "`data` date default NULL,"+ "`USD` float default NULL,"+ "`EUR` float default NULL,"+ "`GBP` float default NULL,"+ "PRIMARY KEY (`Id`)"+ ") ;"); //Dodawanie "reczne" poszczegolnych rekordow do tabeli: statement.executeUpdate("INSERT INTO `waluty` (`Id`,`data`,`USD`,`EUR`,`GBP`) VALUES (1,'2000-01-03',4.1171,4.165,6.6576);"); } finally { if (conn!= null){ conn.close(); } } System.out.println("Utworzono tabele danych"); }
- Wypisywanie danych z tabeli
public static void main(String[] args) throws SQLException { Connection conn = null; try { conn = DriverManager.getConnection( "jdbc:h2:nazwabazy", "sa", ""); Statement statement = conn.createStatement(); //Wyswietlanie calej tabeli: statement.execute("SELECT * FROM waluty"); //Wynik w postaci ResultSet zostanie wzięty tylko z ostatniego "execute". ResultSet rs = statement.getResultSet(); ResultSetMetaData md = rs.getMetaData(); for (int ii = 1; ii <= md.getColumnCount(); ii++){ System.out.print(md.getColumnName(ii)+ " | "); } System.out.println(); while (rs.next()) { for (int ii = 1; ii <= md.getColumnCount(); ii++){ System.out.print( rs.getObject(ii) + " | "); } System.out.println(); } } finally { if (conn!= null){ conn.close(); } } }