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();
			}
		}
		

	}