Łączenie z bazą danych przykładowa klasa infpolaczenie import java.sql.drivermanager; import java.sql.connection; import java.sql.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Łączenie z bazą danych przykładowa klasa infpolaczenie import java.sql.drivermanager; import java.sql.connection; import java.sql."

Transkrypt

1 Łączenie z bazą danych przykładowa klasa infpolaczenie import java.sql.drivermanager; import java.sql.connection; import java.sql.sqlexception; public class infpolaczenie { public static void main(string[] argv) { System.out.println("Sprawdzanie czy zostal zarejestrowany sterownik "); Class.forName("org.postgresql.Driver"); catch (ClassNotFoundException cnfe) { System.out.println("Nie moge znalezc sterownika!"); System.out.println("Wyswietlam sciezke i wychodze z programu."); cnfe.printstacktrace(); System.exit(1); Łączenie z bazą danych przykładowa klasa infpolaczenie (c.d.) System.out.println("Zarejestrowano sterownik, lacze sie..."); Connection c = null; c = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum","olga", "olga"); catch (SQLException se) { System.out.println("Blad! Nie moge sie polaczyc"); se.printstacktrace(); System.exit(1); if (c!= null) System.out.println("Ustanowiono polaczenie z baza"); else System.out.println("Polacznie z baza nie powiodlo sie"); Metadane w JDBC - przykład Wykorzystanie metod interfejsu DatabaseMetaData do wypisania informacji o bazie danych: Metadane w JDBC przykład (c.d.) System.out.print("Nazwa RDBMS: "); System.out.println(dmd.getDatabaseProductName()); System.out.print("Wersja PostgreSQL: "); System.out.println(dmd.getDatabaseProductVersion()); System.out.print("Nazwa użytkownika: "); System.out.println(dmd.getUserName()); System.out.print("Główny numer poprawki sterownika: "); System.out.println(dmd.getDriverMajorVersion()); System.out.print("Poboczny numer poprawki sterownika: "); System.out.println(dmd.getDriverMinorVersion()); System.out.print("Nazwa sterownika: "); System.out.println(dmd.getDriverName()); 1

2 System.out.print("Wersja sterownika: "); System.out.println(dmd.getDriverVersion()); Metadane w JDBC przykład (c.d.) System.out.print("Adres URL sterownika JDBC: "); System.out.println(dmd.getURL()); System.out.print("Używanie plików lokalnych do zapisywania tabel: "); System.out.println(dmd.usesLocalFiles()); con.close(); Zapytania do bazy Connection con = null; Statement stm = null; ResultSet rs = null; Class.forName ("org.postgresql.driver"); con = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum", "olga", "olga"); stm = con.createstatement(); //utworzenie obiektu typu Statement //wykonanie zapytania rs = stm.executequery("select imie, nazwisko, data_urodzenia,"+ "miejsce_urodzenia, adres FROM osoby"); //przetworzenie otrzymanych danych //wypisanie danych za pomocą funkcji println System.out.println(rs.getString("Nazwisko") +", " + rs.getlnt("wiek") ); Zapytania do bazy catch(sqlexception e){ //obsługa wyjątku finally{ //zamknięcie połączenia z bazą danych try{ if(null!=con.close(); con = null; catch(exception ee){ ee.printstacktrace(); Zapytania do bazy - przykład import java.sql.*; import java.util.*; public class TabelaOsoby{ final static String jdbcdriver = "org.postgresql.driver"; final static String table = "osoby"; public static void main(string[] args) { System.out.println("--- Zawartość tabeli osoby---"); 2

3 Class.forName(jdbcDriver); Kody do wykładu Programowanie baz danych JDBC Maria Dems; Zapytania do bazy - przykład (c.d.) Connection con = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum", "olga", "olga"); Statement stm = con.createstatement(); ResultSet rs = stm.executequery("select * FROM "+ table); ResultSetMetaData rsmd = rs.getmetadata(); int columncount = rsmd.getcolumncount(); for(int kol = 1; kol <= columncount; kol++) { System.out.print(rsmd.getColumnLabel(kol)); System.out.print(" (" + rsmd.getcolumntypename(kol)+")"); if(kol < columncount) System.out.print(", "); Zapytania do bazy - przykład (c.d.) System.out.println(); while(rs.next()) { for(int col = 1; col <= columncount; col++) { System.out.print(rs.getString(col)); if(col < columncount) System.out.print(", "); System.out.println(); rs.close(); stm.close(); con.close(); catch (ClassNotFoundException e) { System.out.println("Nie można załadować sterownika"); catch (SQLException e) { System.out.println("Wyjątek SQL : " + e.getmessage()); Zapytania do bazy Connection con = null; Statement stm = null; ResultSet rs = null; Class.forName ("org.postgresql.driver"); con = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum", "olga", "olga"); stm = con.createstatement(); //utworzenie obiektu typu Statement //wykonanie zapytania rs = stm.executequery("select imie, nazwisko, data_urodzenia,"+ "miejsce_urodzenia, adres 3

4 FROM osoby"); //przetworzenie otrzymanych danych //wypisanie danych za pomocą funkcji println System.out.println(rs.getString("Nazwisko") +", " + rs.getlnt("wiek") ); Przewijanie zbioru wyników w JDBC Możliwe do ustawienia wartości parametrów int resultsettype, oraz int resultsetconcurrency Aby uzyskać zestaw wyników zapytania z przewijaniem w obie strony, należy zadeklarować instrukcję: // utworzenie obiektu ResultSet z przewijaniem typu insensitive Statement stm = connection.createstatement ( // zestaw wyników z przewijaniem ResultSet.TYPE_SCROLL_INSENSITIVE, // zestaw wyników tylko do odczytu. ResultSet.CONCUR_READ_ONLY); // utworzenie obiektu ResultSet z przewijaniem typu sensitive stm = connection.createstatement ( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); catch (SQLException e) { Zapytania do bazy Connection con = null; Statement stm = null; ResultSet rs = null; Class.forName ("org.postgresql.driver"); con = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum", "olga", "olga"); stm = con.createstatement(); //utworzenie obiektu typu Statement //wykonanie zapytania rs = stm.executequery("select imie, nazwisko, data_urodzenia,"+ "miejsce_urodzenia, adres FROM osoby"); //przetworzenie otrzymanych danych //wypisanie danych za pomocą funkcji println System.out.println(rs.getString("Nazwisko") +", " + rs.getlnt("wiek") ); Aby uzyskać zestaw wyników zapytania z przewijaniem w obie strony, należy zadeklarować instrukcję: 4

5 // utworzenie obiektu ResultSet z przewijaniem typu insensitive Statement stm = connection.createstatement ( // zestaw wyników z przewijaniem ResultSet.TYPE_SCROLL_INSENSITIVE, // zestaw wyników tylko do odczytu. ResultSet.CONCUR_READ_ONLY); // utworzenie obiektu ResultSet z przewijaniem typu sensitive stm = connection.createstatement ( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); catch (SQLException e) { Aktualizowanie zbioru wyników w JDBC Przykładowo, w celu zmiany danych w bazie można napisać kod: String query = "SELECT * FROM osoby"; ResultSet rs = stm.executequery(query); if( ){ String nr = String adres = rs.getstring("adres") + nr;.. rs.updatestring ("adres", adres) ; rs.updaterow(); Zapytania do bazy Connection con = null; Statement stm = null; ResultSet rs = null; Class.forName ("org.postgresql.driver"); con = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum", "olga", "olga"); stm = con.createstatement(); //utworzenie obiektu typu Statement //wykonanie zapytania rs = stm.executequery("select imie, nazwisko, data_urodzenia,"+ "miejsce_urodzenia, adres FROM osoby"); //przetworzenie otrzymanych danych //wypisanie danych za pomocą funkcji println System.out.println(rs.getString("Nazwisko") +", " + rs.getlnt("wiek") ); Aby uzyskać zestaw wyników zapytania z przewijaniem w obie strony, należy zadeklarować instrukcję: // utworzenie obiektu ResultSet z przewijaniem typu insensitive 5

6 Statement stm = connection.createstatement ( // zestaw wyników z przewijaniem ResultSet.TYPE_SCROLL_INSENSITIVE, // zestaw wyników tylko do odczytu. ResultSet.CONCUR_READ_ONLY); // utworzenie obiektu ResultSet z przewijaniem typu sensitive stm = connection.createstatement ( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); catch (SQLException e) { Aktualizowanie zbioru wyników w JDBC Przykładowo, w celu zmiany danych w bazie można napisać kod: String query = "SELECT * FROM osoby"; ResultSet rs = stm.executequery(query); if( ){ String nr = String adres = rs.getstring("adres") + nr;.. rs.updatestring ("adres", adres) ; rs.updaterow(); Operacje na zbiorze wyników w JDBC Pokazuje to przykład: Zapytania do bazy Connection con = null; Statement stm = null; ResultSet rs = null; Class.forName ("org.postgresql.driver"); con = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum", "olga", "olga"); stm = con.createstatement(); //utworzenie obiektu typu Statement //wykonanie zapytania rs = stm.executequery("select imie, nazwisko, data_urodzenia,"+ "miejsce_urodzenia, adres FROM osoby"); //przetworzenie otrzymanych danych //wypisanie danych za pomocą funkcji println System.out.println(rs.getString("Nazwisko") +", " + rs.getlnt("wiek") ); Aby uzyskać zestaw wyników zapytania z przewijaniem w obie strony, należy zadeklarować instrukcję: 6

7 // utworzenie obiektu ResultSet z przewijaniem typu insensitive Statement stm = connection.createstatement ( // zestaw wyników z przewijaniem ResultSet.TYPE_SCROLL_INSENSITIVE, // zestaw wyników tylko do odczytu. ResultSet.CONCUR_READ_ONLY); // utworzenie obiektu ResultSet z przewijaniem typu sensitive stm = connection.createstatement ( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); catch (SQLException e) { Aktualizowanie zbioru wyników w JDBC Przykładowo, w celu zmiany danych w bazie można napisać kod: String query = "SELECT * FROM osoby"; ResultSet rs = stm.executequery(query); if( ){ String nr = String adres = rs.getstring("adres") + nr;.. rs.updatestring ("adres", adres) ; rs.updaterow(); Operacje na zbiorze wyników w JDBC Zasady użycia metod: executeouery(), executeupdate() i execute(), umożliwiających wykonanie poleceń SQL na rzecz obiektu Statement: Ten sam obiekt Statement może zostać wielokrotnie wykorzystany do wykonania różnych instrukcji SQL. Przykładowy kod, wstawiający do tabeli dwa rekordy za pomocą dwóch obiektów ResultSet ma postać: import java.sql.*; import java.io.*; public class DodawanieRekordow { public static DodawanieRekordow dodawanierekordow; protected Connection connection = null; public DodawanieRekordow(){ try{ connect(); writerecord(); close(); 7

8 catch(sqlexception e){ System.out.println("Błąd: " + e); while((e = e.getnextexception())!= null){ public static void main(string args[]){ dodawanierekordow = new DodawanieRekordow(); public void connect()throws SQLException{ try{ Class.forName("org.postgresql.Driver"); catch(classnotfoundexception e){ System.out.println("Błąd załadownaia sterownika: " + e); System.exit(-1); connection = DriverManager.getConnection("jdbc:postgresql://localhost/archiwum", "olga", "olga"); System.out.println("\nPołączenie zostało nawiązane\n"); public void close()throws SQLException{ connection.close(); System.out.println("\nPołączenie zostało zamknięte\n"); public void writerecord()throws SQLException{ Statement statement = connection.createstatement(); int liczba = statement.executeupdate("insert INTO osoby VALUES (1,'Olga', Kowalska', '01/01/1980', 'Warszawa', Nowa 27/11')"); System.out.println("Liczba dodanych rekordów: " + liczba); Operacje na zbiorze wyników w JDBC //połączenie jest nawiązane i utworzony obiekt Statement statement String sql; //do typu String przypisano zmienną reprezentującą polecenia SQL //... //wykonanie metody execute() boolean b = statement.execute(sql); if(b){ //sprawdzamy zwróconą wartość b == true //obsługa danych ResultSet rs = statement.getresultset(); 8

9 //... System.out.println(rs.getlnt("nazwa_pola")); // inna obsługa danych //... else{ // zwrócona wartość b == false //sprawdzenie ilości zmienionych rekordów int liczba = statement.getupdatecount(); System.out.println("Liczba zmienionych rekordów: "+ liczba); //zamknięcie połączenia ResultSet rs = stm.executequery(" "); //. ResultSetMetaData rsmd = rs.getmetadata(); Connection con DriverManager.getConnection("jdbc:postgresql://localhost/ archiwum","olga", "olga"); void wypisz(string args){ System.out.println(args); String query = "SELECT imie, nazwisko, adres FROM osoby"; try{ Statement stm = con.createstatement(); ResultSet rs = stm.executequery(query); ResultSetMetaData rsmd = rs.getmetadata(); int liczba = rsmd.getcolumncount(); //liczba kolumn for(int i = 1; i<=liczba; i++) { wypisz('\n' rsmd.getcolumnname(i)); //nazwa wypisz(' ' rsmd.getcolumndisplaysize(i)); //szerokość wypisz(' ' rsmd.getcolumnclassname(i)); //klasa Javy wypisz(' ' rsmd.getcolumntype(i)); //typ SQL wypisz(' ' rsmd.getcolumntypename(i)); //typ RDBMS stm.close(); con.close(); catch(sqlexception e){ System.out.println(e.getMessage()); 9

10 //połączenie zostało już nawiązane przez obiekt Connection con try{ con.setautocommit(false); //wyłączenie trybu autocommit Statement stm = con.createstatement(); //utworzenie ob. Statement //wywołanie polecenia SQL stm.executeupdate("update osoby"+ SET adres = Nowa 27 + "WHERE Nazwisko LIKE '%ska';"); stm.executeupdate("delete FROM osoby"+ "WHERE adres = Nowa 27'"); con.commit(); //zatwierdzenie transakcji w przypadku braku błędów catch(exception e){ con.rollback(); //odwołanie transakcji przy wystąpieniu błędów //zamknięcie połączenia Connection con = DriverManager.getConnection ("jdbc:postgresql://localhost/archiwum","olga", "olga"); Statement stm = con.createstatement(); Savepoint sp; stm.executeupdate(("insert INTO osoby VALUES (1,'Olga', Kowalska', '01/01/1980', 'Warszawa', Nowa 27/11')"); sp = con.setsavepoint(safety); stm.executeupdate("insert INTO akta_studenckie (id_osoby, nr_albumu) VALUES (2, 22780)"); try{ stm.executeupdate("update osoby SET akta_studenckie = 2 WHERE id = 1"); catch(sqlexception e){ con.rollback(sp); con.commit(); Transakcje w JDBC - przykładowy program import java.sql.* ; public class Transakcja1 { public static void main(string [ ] args) throws SQLException { int kod_bledu ; Connection conn = null ; //Załadowanie i rejestracja sterownika Oracle DriverManager.registerDriver (new oracle.jdbc.driver.oracledriver( )); //ustanawiamy połączenie conn = DriverManager.getConnection ( jdbc:oracle:thin:@training: 1521:Oracle, oratest, oratest ) ; Transakcje w JDBC - przykładowy program //Wyłączamy tryb automatycznego zatwierdzania conn = setautocommit( false) ; 10

11 String sql1 = SELECT nr FROM tabela WHERE nr=? ; String sql2 = INSERT INTO tabela VALUES (?.?.?) ; PreparedStatement pstmt1 = conn. preparestatement (sql1) ; PreparedStatement pstmt2 = conn. preparestatement (sql2) ; pstmt1.setint(1, 9999); ResultSet rset = pstmt1.executequery( ) ; if (rset.next( ) ) { System.out.println( nr 9999 istnieje ) ; rset.close ( ) ; else { pstmt2.setint(1, 9999); pstmt2.setstring(2, Adam ) ; pstmt2.setstring(3, Kowalski ) ; Transakcje w JDBC - przykładowy program pstmt1.close ( ) ; pstmt2.close( ) ; //zatwierdzamy efekt instrukcji INSERT conn.commit( ) ; conn.close( ) catch (SQLException e) //wycofujemy zmiany, aby anulować efekt instrukcji INSERT { conn. Rollback ( ) ; kod_bledu = e.geterrorcode( ) ; System.err.println(kod_bledu + e.getmessage( ) ) ; Connection con = null; try{ //wywołanie funkcji powodujących wyjątek: // połączenie z bazą danych, polecenia SQL catch(sqlexception e){ //przechwycenie wyjątku i wyświetlenie go na konsoli System.out.println(e.getMessage()); //pobranie referencji do kolejnych wyjątków, //do momentu otrzymania wartości null while(null!=(e=e.getnextexception()){ //wyświetlenie informacji o kolejnych wyjątkach System.out.println(e.getMessage()); Connection con = null; try{ 11

12 //połączenie i wykonanie transakcji catch(sqlexception e) { //obsługa wyjątku final { if(con!= null){ con.close(); catch(sqlexception e){ Mapowanie typów danych w JDBC Przykład wywołania funkcji wyzej z konwertowaniem dostarczonych argumentów znakowych na wielkie litery //utworzono i zainicjowano obiekt Connection con //utworzenie obiektu CallableStatement, z podaniem w argumencie // funkcji 'preparecall' składni wywołania funkcji przechowywanej CallableStatement wyzej = con.preparecall("{?=call wyzej(?)"); //rejestracja par. wyjściowego funkcji którym jest znacznik "?" wyzej.registeroutparameter(1, Types.VARCHAR); //przypisanie pierwszemu znacznikowi '?' wartości wyzej.setstring(2, "Konwertuj z małych liter na duże"); //wywołanie wykonania funkcji przechowywanej wyzej.execute(); String wyzejpobierz = wyzej.getstring(1); wyzej.close(); Przykład zwracania wartości funkcji jako refcursor //ustawiono wywołanie funkcji. Statement stm = con.createstatement(); stm.execute("create OR REPLACE FUNCTION refkursorfunkcja()" +"RETURNS refcursor AS DECLARE kursor refcursor ; " + " BEGIN OPEN kursor FOR SELECT 1 UNION SELECT 2; " + " RETURN kursor ; END ;' language plpgsql"); stm.close(); //należy być wewnątrz transakcji dla kursorów, by pracować z nimi con.setautocommit(false); //wywołanie procedury CallableStatement proc = con.preparecall("{?=call refkursorfunkcja()"); proc.registeroutparameter(1, Types.Other); proc.execute(); ResultSet rs = (ResultSet)proc.getObject(1); while (rs.next()) { //działania na rezultatach rs.close(); 12

13 proc.close(); Kody do wykładu Programowanie baz danych JDBC Maria Dems; Przykład zwracania wartości funkcji jako typ danych SETOF Statement stm = con.createstatement(); stm.execute("create OR REPLACE FUNCTION setoffunkcja()" +"RETURNS SETOF int AS 'SELECT 1 UNION SELECT 2; ' language sql"); ResultSet rs = stm.executequery("select * FROM setoffunkcja()"); while (rs.next()) { // jakies operacje na danych rs.close(); stm.close(); Funkcje przechowywane w JDBC Wartości zwracane przez refcursor można potraktować jako nazwę kursora; w tym celu należy użyć metody getstring() obiektu ResultSet. W kursorze można również używać takich poleceń jak FETCH i MOVE. Obsługa dużych obiektów w JDBC JDBC umożliwia obsługę stosunkowo dużych obiektów za pomocą metod getbytes() i getstring(), należących do interfejsu java.sql.resultset. Często jednak znajdujące się w bazie obiekty mogą być tak duże, że zastosowanie powyższych metod nie będzie możliwe. JDBC udostępnia metody operujące na strumieniach: getbinarystream(), getasciistream(), getunicodestream() setbinarystream(), setasciistream() setunicodestream(). W celu zapisania w bazie danych znajdującego się na dysku twardym zdjęcia należy napisać kod: //utworzono połączenie, stworzono i zainicjowano obiekt // Connection con i utworzono obiekt File dla pliku zdjecia File zdjecie = new File("olga.gif"); int wielkoscpliku = zdjecie.length(); //odczytanie wielkości pliku //utworzenie strumienia wejściowego z pliku InputStream is = new FileInputStream(zdjecie); //przygotowanie poleceń wstawiania do bazy PreparedStatement pstm = 13

14 con.preparestatement("update PORTRETY SET zdjecie =?" + "WHERE nazwisko = Kowalska'"); //przypisanie strumienia wejściowego z pliku //do strumienia danych, przesyłanych do bazy pstm.setbinarystream(1, is, wielkoscpliku); pstm.execute(); //wywołanie wykonania polecenia W celu uzyskania pliku z bazy danych należy napisać kod: //utworzono połączenie, stworzono i zainicjowano obiekt // Connection con i utworzono obiekt Statement w postaci: Statement stm = con.createstatement(resultset.type_scroll_insensitive, ResultSet.CONCUR_READ_ONLY); String query = "SELECT zdjecia FROM osoby" + //utworzenie polecenia SQL "WHERE Nazwisko = Kowalska'"; //wykonanie zapytania- otrzymanie referencji do obiektu ResultSet ResultSet rs = stm.executequery(query); byte() bufor = new byte[2048]; //utworzenie buforu dla danych wypisanych z bazy //ustawienie kursora obiektu ResultSet przed pierwszym rekordem rs.beforefirst(); //przypisanie do zmiennej is strumienia wejściowego z bazy InputStream is = rs.getbinarystream("zdjecie"); int rozmiar = 0; //odczytanie danych ze strumienia while((rozmiar = in.read(bufor)) > 0){ //... //operacja na danych pobranych z bazy Sposób obsługi struktur w JDBC ilustruje przykład: import java.sql.*; public Class DodatkoweInformacje implements SQLData { //deklarowanie zmiennej określającej nazwę struktury private String sql_type; //deklarowanie zmiennych, odpowiadających polom struktury public int wzrost; public String dodatkowe_dane; //konstruktor bez paramertów, inicjujący obiekt przez JDBC public DodatkoweInformacje(){ //drugi konstruktor, niezbędny do utworzenia i zapisu obiektu do bazy public DodatkoweInformacje(String sql_type, int wzrost, String dodatkowe_dane) { this.sql_type = sql_type; this.wzrost = wzrost; this.dodatkowe_dane = dodatkowe_dane; 14

15 //implementowanie funkcji z interfejsu SQLData zwracającej sql_type public String getsqltypename() throws SQLException{ return sql_type; public void readsql(sqlinput stream, String typename) throws SQLException{ //podstawienie do zmiennej sql_type wartości przekazanej //w argumencie typename sql_type = typename; //odczytanie ze strumienia wartości pól struktury //w kolejności określonej w definicji struktury w bazie danych wzrost = stream.readlnt(); dodatkowe_dane = stream.readstring(); public void writesql(sqloutput stream) throws SQLException{ //zapisanie do strumienia wartości zmiennych obiektu //w kolejności określonej w definicji struktury w bazie danych stream.writeint(wzrost); stream.writestring(dodatkowe_dane); //nawiązano połączenie z bazą danych oraz stworzono // i zainicjowano obiekt Connection con //pobranie referencji do obiektu Map zawierającego zmapowane typy //SQL do klas Javy java.util.map map = con.gettypemap(); //mapowanie struktury do zaimplementowanej klasy map.put("informacje", Class.forName("DodatkoweInformacje")); //utworzenie obiektu Statement Statement stm = con.createstatement(resultset.type_scroll_insensitive, RsultSet.CONCUR_READ_ONLY) //wykonanie zapytania ResultSet rs = stm.executequery("select informacje FROM osoby +"WHERE nazwisko = Kowalska'"); //w tabeli jest jeden taki rekord, więc rezultat zapytania został //zapisany dla pierwszego wyniku rs.first(); //pobranie obieku DodatkoweInformacje inf = (DodatkoweInformacje)rs.getObject("informacje"); //przetwarzanie zwróconych danych System.out.println("Waga: "+inf.waga); System.out.println("dodatkowe_dane: "+inf. dodatkowe_dane); Struktury w JDBC Sposób dodania nowych wartości do bazy danych do tabeli osoby z wykorzystaniem uprzednio zdefiniowanego obiektu DodatkoweInformacje ilustruje kod: 15

16 //utworzenie obiektu PreparedStatement i przypisanie do niego //polecenia SQL modyfikującego dane w kolumnie informacje, jeśli //zostanie spełniony warunek WHERE PreparedStatement pstm = con.preparestatement("update osoby " + "SET informacje =?"+ "WHERE nazwisko = Kowalska'"); //utworzenie obiektu klasy DodatkoweInformacje DodatkoweInformacje inf = new DodatkoweInformacje(196, "Polka, dwie specjalizacje: informatyka, elektrotechnika"); //przypisanie zmiennej inf do znacznika? pstm.setobject(1, daneos, Types.STRUCT); //wykonanie polecenia UPDATE pstm.execute(); //... Wywoływanie procedur przechowywanych Javy w JDBC - przykładowy program import java.sql.* ; public class JavaProcPrzyklad { public static void main(string [ ] args) throws SQLException { int kod_bledu ; Connection conn = null ; //Załadowanie i rejestracja sterownika Oracle DriverManager.registerDriver (new oracle.jdbc.driver.oracledriver( )); //ustanawiamy połaczenie conn = DriverManager.getConnection ( jdbc:oracle:thin:@training: 1521:Oracle, oratest, oratest ) ; //Procedura usuwa rekordy z tabeli, w których nr = 20 int i_nr = 20 ; CallableStatement pstmt = conn.preparecall( {call proc_nazwa (?) ) ; pstmt.setint (1, i_nr) ; pstmt.executeupdate ( ) ; pstmt.close ( ) ; conn.close( ) catch (SQLException e) { kod_bledu = e.geterrorcode( ) ; System.err.println(kod_bledu + e.getmessage( ) ) ; conn.close( ) ; 16

Połączenie z bazą danych

Połączenie z bazą danych Połączenie z bazą danych ODBC i JDBC - przykłady w języku Java Standard ODBC Stworzony przez Microsoft Dostępny w Windows (są także bibliotek Linux'owe) Pozwala na dostęp do źródeł danych Programowanie

Bardziej szczegółowo

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski Aplikacje bazodanowe dr inż. Arkadiusz Mirakowski Plan prezentacji interfejs ODBC interfejs JDBC rodzaje sterowników JDBC niezbędne biblioteki interfejsu JDBC instalacja i konfiguracja sterownika JDBC

Bardziej szczegółowo

JDBC (Java Database Connectivity vit )

JDBC (Java Database Connectivity vit ) 1 JDBC (Java Database Connectivity) Marek Wojciechowski Czym jest JDBC? 2 JDBC jest standardowym interfejsem do współpracy aplikacji Java z relacyjną bazą danych JDBC definiuje standardowe interfejsy interfejsy

Bardziej szczegółowo

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

JAVA I BAZY DANYCH. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html JAVA I BAZY DANYCH ZAGADNIENIA: wprowadzenie; JDBC; komunikacja z bazą danych; HSQLDB. MATERIAŁY: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK

Bardziej szczegółowo

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński JAVA bazy danych na bazie: Język Java - Podstawy Programowania - Jacek Rumiński Plan wykładu Sposoby połączenia z bazą danych Sterowniki JDBC Połączenie z bazą danych poprzez JDBC Język SQL (Structured

Bardziej szczegółowo

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych Zadanie do wykonania na następny tydzień: Przedstawić aplikację napisaną w JSP realizującą analogiczne zadania jak pierwsza aplikacja

Bardziej szczegółowo

Programowanie w języku Java. Bazy danych SQLite w Javie

Programowanie w języku Java. Bazy danych SQLite w Javie Programowanie w języku Java Bazy danych SQLite w Javie Co to jest SQLite SQLite to bezserwerowa, nie wymagająca konfiguracji relacyjna baza danych. Znajduje szerokie zastosowanie np.. w systemie android

Bardziej szczegółowo

Typy sterowników. Rozdział 21 JDBC. Podstawowe kroki aplikacji. Historia. Program napisany w języku Java JDBC API. Menadżer sterowników JDBC

Typy sterowników. Rozdział 21 JDBC. Podstawowe kroki aplikacji. Historia. Program napisany w języku Java JDBC API. Menadżer sterowników JDBC Typy sterowników Program napisany w języku Java Rozdział JDBC JDBC API Menadżer sterowników JDBC Typ Typ Typ Typ Wprowadzanie do JDBC, kursory zwykłe, kursory przewijane, obsługa błędów, przetwarzanie

Bardziej szczegółowo

Bazy danych wykład dwunasty

Bazy danych wykład dwunasty Bazy danych wykład dwunasty Interfejs do połaczeń z baza danych Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa danych 1 / 29 Zajmiemy się mechanizmami pozwalajacymi połaczyć się

Bardziej szczegółowo

JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium

JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium Bazy Danych JDBC Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia Wprowadzenie do laboratorium. Nawiązywanie i zamykanie połączeń. Wykonywanie zapytań. Wykonywanie aktualizacji. Zarządzanie

Bardziej szczegółowo

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Wprowadzenie do JDBC z wykorzystaniem bazy H2 Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za

Bardziej szczegółowo

Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access)

Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access) Programowanie komputerów Wykład 10: Dostęp do baz danych z poziomu aplikacji Java (JDBC Database Access) Relacyjne bazy danych Baza danych to zbiór danych powiązanych ze sobą pewnymi relacjami. System

Bardziej szczegółowo

Rozdział 9 Obsługa baz danych w języku Java

Rozdział 9 Obsługa baz danych w języku Java Rozdział 9 Obsługa baz danych w języku Java 9.1 Obsługa baz danych w Javie - pakiet SQL 9.2 Utworzenie połączenia z bazą danych 9.3 Sterowniki 9.4 Wysłanie polecenia SQL 9.5 Rezultaty i ich przetwarzanie

Bardziej szczegółowo

Podejście obiektowe do relacyjnych baz danych Hibernate.

Podejście obiektowe do relacyjnych baz danych Hibernate. Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady

Bardziej szczegółowo

Java Database Connectivity

Java Database Connectivity Java Database Connectivity Celem ćwiczenia jest zbudowanie kilku prostych serwletów z użyciem technologii JDBC. Podczas ćwiczenia zbudowane zostaną serwlety ilustrujące podstawowe techniki łączenia się

Bardziej szczegółowo

Aplikacje Internetowe

Aplikacje Internetowe Aplikacje Internetowe Łączenie z bazą danych Podstawy Klient Serwer Sterownik Własne API (Application Programmer Interface) Łączenie z bazą danych Sterownik Protokół komunikacyjny Adres serwera Port nasłuchowy

Bardziej szczegółowo

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu. Wstęp Java Zadanie Celem laboratorium jest zapoznanie się z podstawami platformy oraz języka Java. W ramach zadania należy przygotować aplikację zarządzania notatkami użytkownika obsługiwaną z konsoli.

Bardziej szczegółowo

JDBC - Obsługa baz danych w języku Java

JDBC - Obsługa baz danych w języku Java JDBC - Obsługa baz danych w języku Java JDBC (Java Database Conectiviti) jest interfejsem pozwalającym połączyć aplikację Javy z zewnętrzną bazą danych za pomocą odpowiednich sterowników. Dużą zaletą JDBC

Bardziej szczegółowo

PL/SQL. Zaawansowane tematy PL/SQL

PL/SQL. Zaawansowane tematy PL/SQL PL/SQL Zaawansowane tematy PL/SQL Cele Poznanie złożonych i referencyjnych typów danych Poznanie konstrukcji kursora Poznanie kodu składowanego Poznanie procedur i funkcji 2 Złożone typy danych RECORD

Bardziej szczegółowo

Bartosz Jachnik - Kino

Bartosz Jachnik - Kino Bartosz Jachnik - Kino I. Opis bazy Prezentowana baza danych stworzona została na potrzeby prowadzenia kina. Zawiera ona 8 tabel, które opisują filmy grane w danym okresie w kinie, wraz ze szczegółowym

Bardziej szczegółowo

Plan wykładu. Dostęp do bazy danych. Architektura JDBC. Dostęp do baz danych z aplikacji Java EE

Plan wykładu. Dostęp do bazy danych. Architektura JDBC. Dostęp do baz danych z aplikacji Java EE 1 Plan wykładu 2 Dostęp do bazy danych Dostęp do baz danych w aplikacjach Java EE JDBC Źródła danych część I: JDBC i źródła danych Dostęp do baz danych z aplikacji Java EE Architektura JDBC Programowane

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Metody dostępu do danych JDBC - Java Database Connectivity JDO - Java Data Object ORM - Object-Relational

Bardziej szczegółowo

PODSTAWY BAZ DANYCH 13. PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL PODSTAWY BAZ DANYCH 13. PL/SQL 1 Wprowadzenie do języka PL/SQL Język PL/SQL - rozszerzenie SQL o elementy programowania proceduralnego. Możliwość wykorzystywania: zmiennych i stałych, instrukcji sterujących

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych http://www.mini.pw.edu.pl/~lucknerm Utworzenie tabeli w Oracle Utworzenie użytkownika Utworzenie połączenia w NetBeans Utworzenie

Bardziej szczegółowo

Java Database Connectivity

Java Database Connectivity 1 Java Database Connectivity Java Database Connectivity (JDBC) to specyfikacja określająca zbiór klas i interfejsów napisanych w Javie, które mogą być wykorzystane przez programistów tworzących oprogramowanie

Bardziej szczegółowo

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania:

Bardziej szczegółowo

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

DB+frontend Inne języki H2. Bazy Danych i Systemy informacyjne Wykład 9. Piotr Syga

DB+frontend Inne języki H2. Bazy Danych i Systemy informacyjne Wykład 9. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 9 Piotr Syga 30.11.2018 API Przykłady API ODBC JDBC OLEDB ADO.NET data provider API Funkcjonalności Komponenty Główne komponenty odpowiadające za komunikację API/data

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

przygotował: Pawel@Kasprowski.pl Bazy danych Paweł Kasprowski pawel@kasprowski.pl Wersja 2006Z

przygotował: Pawel@Kasprowski.pl Bazy danych Paweł Kasprowski pawel@kasprowski.pl Wersja 2006Z Bazy danych Paweł Kasprowski pawel@kasprowski.pl Łączenie z bazą danych Sterownik Protokół komunikacyjny Adres serwera Port nasłuchowy Przesłanie zapytania SQL Odebranie rezultatów Pierwszy przykład JDBC

Bardziej szczegółowo

Podstawy otwartych języków programowania Java Database Connectivity (JDBC)

Podstawy otwartych języków programowania Java Database Connectivity (JDBC) Podstawy otwartych języków programowania Java Database Connectivity (JDBC) Wiktor Wandachowicz Treść wykładu Przypomnienie terminów bazodanowych Architektura JDBC Schemat działania przy dostępie do danych

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 8 - wprowadzenie do obsługi plików tekstowych i wyjątków mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 grudnia 2017 1 / 34 mgr inż. Krzysztof

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

Bardziej szczegółowo

Połączenia między bazami danych i programem w języku Java część 2

Połączenia między bazami danych i programem w języku Java część 2 Połączenia między bazami danych i programem w języku Java część 2 import java.sql.*; import javax.swing.*; import java.util.*; import javax.swing.*; class Okno extends JFrame JLabel elista= new JLabel

Bardziej szczegółowo

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u będziemy używać w taki sam sposób, jak wbudowanych funkcji

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne Materiały dostępne są na stronie: Materiały Technologie baz danych aragorn.pb.bialystok.pl/~gkret Wykład 5: Kursory jawne. Podprogramy. Małgorzata Krętowska Wydział Informatyki Politechnika Białostocka

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Java Database Connectivity Celem ćwiczenia jest zbudowanie kilku prostych serwletów z użyciem technologii JDBC. Podczas ćwiczenia zbudowane zostaną serwlety ilustrujące podstawowe

Bardziej szczegółowo

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Protokół JDBC współpraca z relacyjnymi bazami danych lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void

Bardziej szczegółowo

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu

Procedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Protokół JDBC współpraca z relacyjnymi bazami danych lab3

Protokół JDBC współpraca z relacyjnymi bazami danych lab3 Protokół JDBC współpraca z relacyjnymi bazami danych lab3 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych JPA, lab3 Zofia Kruczkiewicz 1 Zadanie1 Połączenie z bazą danych Sample systemu

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 2 Kusory Wprowadzenie Kursory użytkownika Kursory domyślne Zmienne kursora Wyrażenia kursora - 2 - Wprowadzenie Co to jest kursor?

Bardziej szczegółowo

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Dostęp do baz danych z serwisu www - PHP Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Bazy Danych I, 8 Grudzień 2009 Plan Trochę teorii Uwagi techniczne Ćwiczenia Pytania Trójwarstwowy

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Pakiety podprogramów Dynamiczny SQL

Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL 1 Pakiety Pakiet (ang. package)

Bardziej szczegółowo

Programowanie w języku Java

Programowanie w języku Java Programowanie w języku Java Wykład 4: Programowanie rozproszone: TCP/IP, URL. Programowanie sieciowe w Javie proste programowanie sieciowe (java.net) na poziomie UDP na poziomie IP na poziomie URL JDBC

Bardziej szczegółowo

Bazy danych SQLite w Javie

Bazy danych SQLite w Javie Bazy danych SQLite w Javie Wprowadzenie Pisząc coraz to bardziej złożone aplikacje często problemem staje się to, że nasze dane chcielibyśmy przechowywać w nieco bardziej elastyczny sposób, niż tylko w

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Programowanie Obiektowe Java

Programowanie Obiektowe Java Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej malgorzata.janik@pw.edu.pl http://java.fizyka.pw.edu.pl/ Bazy danych DBMS H2 SQL JDBC 2/128 Bazy danych za: Wikipedia Baza danych =

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Zaawansowane Systemy Decyzyjne Laboratorium prowadzący: Andrzej Czajkowski 1 Dostęp do Bazy Danych. 1 Cel ćwiczenia. Celem ćwiczenia

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Java rozszerzenie. dr. A. Dawid

Java rozszerzenie. dr. A. Dawid Java rozszerzenie PLAN WYKŁADU 1. Java2D AWT SWING Inicjalizacja Metody 2. JDBC Connector 3. Programowanie sieciowe Socket ServerSocket 4. Servlety Serwer internetowy Klasa HttpServlet 5. JSP 6. Java3D

Bardziej szczegółowo

Składowane procedury i funkcje

Składowane procedury i funkcje Składowane procedury i funkcje Procedury i funkcje są zestawem poleceń SQL, które są przechowywane na serwerze (tak jak dane w tablicach). Istnieją sytuacje, kiedy procedury i funkcje są szczególnie przydatne.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Programowanie Obiektowe Java

Programowanie Obiektowe Java Programowanie Obiektowe Java Małgorzata Janik Zakład Fizyki Jądrowej malgorzata.janik@pw.edu.pl http://java.fizyka.pw.edu.pl/ Bazy danych DBMS H2 SQL JDBC Bazy Danych za: Wikipedia Baza danych = zbiór

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

Bardziej szczegółowo

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład. Java i bazy danych 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład. 1 JDBC - wprowadzenie Java Database Connectivity (JDBC) to specyfkacja określająca zbiór klas i interfejsów

Bardziej szczegółowo

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie

Bardziej szczegółowo

Protokół JDBC współpraca z relacyjnymi bazami danych

Protokół JDBC współpraca z relacyjnymi bazami danych Protokół JDBC współpraca z relacyjnymi bazami danych Dr inż. Zofia Kruczkiewicz internetowych wykład 4 1 Java SE 8.0 2 2 Architektura JDBC 2.1.Dwuwarstwowa architektura dostępu do baz danych 3 2. 2. Trójwarstwowa

Bardziej szczegółowo

Ćwiczenie 10 JDBC. Wywoływanie poleceń SQL z języków programowania. Ćwiczenie 10 JDBC. Wymagania: Bazy Danych

Ćwiczenie 10 JDBC. Wywoływanie poleceń SQL z języków programowania. Ćwiczenie 10 JDBC. Wymagania: Bazy Danych Bazy Danych Ćwiczenie 10 JDBC Wywoływanie poleceń SQL z języków programowania. Ćwiczenie 10 JDBC Na dotychczasowych ćwiczeniach wykorzystywaliście państwo program pozwalający na bezpośrednie wydawanie

Bardziej szczegółowo

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa) Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa dwunasty PL/SQL, c.d. 1 / 37 SQL to za mało SQL brakuje możliwości dostępnych w językach proceduralnych.

Bardziej szczegółowo

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze Funkcje użytkownika Tworzenie funkcji Usuwanie funkcji Procedury składowane Tworzenie procedur składowanych Usuwanie procedur składowanych Wyzwalacze Wyzwalacze a ograniczenia i procedury składowane Tworzenie

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 2

Podstawy programowania III WYKŁAD 2 Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL Pakiety podprogramów, specyfikacja i ciało pakietu, zmienne i kursory pakietowe, pseudoinstrukcje (dyrektywy kompilatora), dynamiczny SQL.

Bardziej szczegółowo

DAO. tworzenie tabeli

DAO. tworzenie tabeli Mały poradnik do projektu z baz danych macie przykładowe kody DAO I ADODB, pewnie nie wszystkie, jak będą prośby to się dopisze co trzeba na razie będzie to wersja: 0.1 tego dokumentu. Na czerwono zaznaczyłem

Bardziej szczegółowo

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX Aktualizowanie dokumentów XML ( Oracle ) do aktualizowania zawartości dokumentów XML służy między innymi funkcja updatexml. wynikiem jej działania jest oryginalny dokument ze zmodyfikowanym fragmentem,

Bardziej szczegółowo

Kurs programowania aplikacji bazodanowych

Kurs programowania aplikacji bazodanowych Wykład 1 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Architektury aplikacji Architektura aplikacji Jednowarstwowa Dwuwarstowa Rozproszona (JDBC) Wprowadzenie Architektura JDBC Sterowniki,

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

Bardziej szczegółowo

Procedury i funkcje składowane

Procedury i funkcje składowane Procedury i funkcje składowane Zmienne podstawienia i zmienne wiązane, podprogramy, procedury składowane, typy argumentów, wywoływanie procedur, funkcje składowane, poziomy czystości funkcji, funkcje tablicowe

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 4 Marcin Młotkowski 15 marca 2018 Plan wykładu 1 2 3 Klasa podstawowa Własne kolekcje Obiekty i wartości Marcin Młotkowski Programowanie obiektowe 141 / 224 Z czego składa

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

Bardziej szczegółowo

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3 cur.executescript(""" DROP TABLE IF EXISTS uczen; CREATE TABLE IF NOT EXISTS uczen ( Uniwersytet Technologiczno-Przyrodniczy im. J.J. Śniadeckich w Bydgoszczy Instrukcja do ćwiczeń laboratoryjnych Przedmiot

Bardziej szczegółowo

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2)

Kursor jawny. Rozdział 10a Kursory. Deklarowanie kursora (1) Deklarowanie kursora (2) Kursor jawny Każde zapytanie SQL umieszczone w programie PL/SQL może zwrócić zero, jedną bądź wiele krotek. Aby efektywnie przetworzyć krotkizwrócone przez zapytanie korzystamy z kursorów. Kursor jest

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna

Kurs programowania. Wykład 9. Wojciech Macyna Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy

Bardziej szczegółowo