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

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

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

JDBC (Java Database Connectivity vit )

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

Dostęp do baz danych przy wykorzystaniu interfejsu JDBC

Połączenie z bazą danych

JAVA I BAZY DANYCH. MATERIAŁY:

1) Przygotowanie środowiska pracy.

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

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

Plan wykładu. 1. Zaawansowane możliwości JDBC: rodzaje obiektów ResultSet, dodatkowe możliwości obiektów ResultSet, zapytania prekompilowane,

Bazy danych wykład dwunasty

Metody dostępu do danych

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Connection con = DriverManager.getConnection(dbUrl, username, passwd);

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

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

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

Podejście obiektowe do relacyjnych baz danych Hibernate.

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

Java Database Connectivity

Wprowadzenie. Rozdział 23 PDO. Podstawowe kroki aplikacji. Źródło danych

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

Aplikacje Internetowe

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

Programowanie Obiektowe Java

Programowanie Obiektowe Java

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

Java Database Connectivity

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

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

Aplikacje WWW - laboratorium

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

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

Java rozszerzenie. dr. A. Dawid

Kurs programowania aplikacji bazodanowych

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

Technologia JDBC w praktyce

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

Bartosz Jachnik - Kino

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

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

Bazy danych. Dr inż. Paweł Kasprowski

Procedury i funkcje składowane

Struktura bazy danych

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

Język SQL. Rozdział 8. Język manipulowania danymi DML

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

Język SQL. Rozdział 8. Język manipulowania danymi DML zadania

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Język PL/SQL. Rozdział 6. Procedury wyzwalane

Programowanie Obiektowe Java

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

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

METODY PROGRAMOWANIA

Relacyjny model danych

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

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

Ćwiczenie rozpoczniemy od wprowadzenia do laboratorium, na którym przedstawimy architekturę JDBC, oraz opiszemy jakie wymagania naleŝy spełnić, aby

Podstawy programowania III WYKŁAD 2

Aplikacje Internetowe

Administracja i programowanie pod Microsoft SQL Server 2000

Wzorce logiki dziedziny

Paweł Rajba

Kursory i wyjątki. (c) Instytut Informatyki Politechniki Poznańskiej 1

Język PL/SQL Procedury i funkcje składowane

Programowanie w języku Java WYKŁAD

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Ćwiczenia 2 IBM DB2 Data Studio

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Bazy Danych i Usługi Sieciowe

Programowanie w SQL. definicja bloku instrukcji BEGIN...END, warunkowe wykonanie instrukcji IF...ELSE, wyrażenie CASE,

Dlaczego JDBC jest lepszy ni ODBC? Zgodno ze standardami SQL. Sterowniki.

Deklarowanie kursora

Oracle PL/SQL. Paweł Rajba.

PHP: bazy danych, SQL, AJAX i JSON

PODSTAWY BAZ DANYCH 13. PL/SQL

15. Funkcje i procedury składowane PL/SQL

PROJEKTOWANIE SYSTEMU INFORMATYCNEGO

Bazy Danych i Systemy informacyjne Wykład 5. Piotr Syga

Programowanie w języku Java

Bazy danych i usługi sieciowe

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

Język PL/SQL. Rozdział 2. Kursory

Bazy danych SQLite w Javie

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

Kursory. A. Pankowska 1

Metody dostępu do danych

Java, bazy danych i SSL

Aplikacje WWW - laboratorium

Dostęp do baz danych przy wykorzystaniu interfejsu PDO

Obsługa błędów w SQL i transakcje. Obsługa błędów w SQL

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

Dostęp do baz danych z aplikacji J2EE

Programowanie wielowarstwowe i komponentowe

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Transkrypt:

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 transakcyjne, wywoływanie kodu składowanego JDBC - ODBC ODBC Biblioteka DB Opr. pośrednie SZBD Historia Podstawowe kroki aplikacji JDBC. JDK., rok 997, JDBC. JDK., rok 999, JDBC.0 JDK., rok 00, JDBC.0 Java SE 6, rok 006,. dołączenie do źródła danych. określenie parametrów połączenia. przygotowanie i wykonanie polecenia. pobranie wyników 5. odłączenie od źródła danych JDBC. Java SE 7, rok 0, JDBC. Java SE 8.

Nawiązywanie i zamykanie połączeń Wykonywanie zapytań Statement stmt = con.createstatement() ; import java.sql.*; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@dblab.cs.put.poznan.pl:5:dblabg", "scott", "tiger"); "SELECT nazwisko,placa_pod FROM pracownicy"); String nazwisko=rs.getstring("nazwisko"); float placa=rs.getfloat(); System.out.println(nazwisko+" "+placa); con.close(); 5 6 Wykonywanie aktualizacji danych Zarządzanie transakcjami () Statement stmt = con.createstatement() ; int changes; "INSERT INTO pracownicy(id_prac,nazwisko)"+ "VALUES(00,'Zieliński')"); System.out.println("Wstawiono "+changes+" krotek."); "UPDATE pracownicy " + "SET placa_pod=placa_pod*.5"); System.out.println("Zmodyfikowano "+changes+" krotek."); "DELETE FROM pracownicy WHERE id_prac=00"); System.out.println("Usunięto "+changes+" krotek."); private static int ilepracownikow(connection con) throws SQLException { int result; Statement stmt=con.createstatement(); "SELECT COUNT(*) FROM pracownicy"); rs.next(); result=rs.getint(); return result; 7 8

Zarządzanie transakcjami () Prekompilowane polecenia () con.setautocommit(false); Statement stmt=con.createstatement(); System.out.println(ilePracownikow(con)); // "DELETE FROM pracownicy WHERE id_prac=50"); System.out.println("Usunieto "+changes+" krotek."); con.rollback(); System.out.println(ilePracownikow(con)); // "SELECT nazwisko FROM pracownicy WHERE id_prac=?"); ResultSet rs; stmt.setint(,0); rs=stmt.executequery(); System.out.println(rs.getString("NAZWISKO")); "DELETE FROM pracownicy WHERE id_prac=50"); System.out.println("Usunieto "+changes+" krotek."); con.commit(); System.out.println(ilePracownikow(con)); // stmt.setint(,70); rs=stmt.executequery(); System.out.println(rs.getString("NAZWISKO")); 9 0 Prekompilowane polecenia () Aktualizowanie wsadowe () "UPDATE pracownicy SET placa_pod=?, etat =? WHERE id_prac=?"); "UPDATE pracownicy SET placa_pod=placa_pod *? WHERE id_prac =? "); stmt.setfloat(,000); stmt.setstring(,"profesor"); stmt.setint(,0); int changes =stmt.executeupdate(); System.out.println("Zmodyfikowano "+changes+ " krotek"); stmt.setfloat(,new Float(0.9)); stmt.setint(,0); stmt.addbatch(); stmt.setfloat(,new Float(.5)); stmt.setint(,50); stmt.addbatch(); int []changes =stmt.executebatch(); System.out.println("Zmodyfikowano"+changes[0]+", " +changes[]+" krotek");

Aktualizowanie wsadowe () Zwiększanie przesyłanej liczby krotek Statement stmt = con.createstatement(); stmt.addbatch("update pracownicy set placa_pod=000" + "where nazwisko = 'MORZY'"); stmt.addbatch("delete from pracownicy where " + "nazwisko = 'HAPKE'"); Statement stmt = con.createstatement(); ((OracleStatement)stmt).setRowPrefetch(0); "SELECT nazwisko FROM pracownicy"); while (rs.next()) System.out.println(rs.getString()); int []changes =stmt.executebatch(); Przewijalne zbiory wyników Modyfikowalne zbiory wyników Statement stmt = con.createstatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs = stmt.executequery( "SELECT nazwisko FROM pracownicy"); rs.absolute(); System.out.println(rs.getString()); rs.absolute(-); System.out.println(rs.getString()); rs.relative(-); System.out.println(rs.getString()); rs.relative(); System.out.println(rs.getString()); rs.afterlast(); while(rs.previous())system.out.println(rs.getstring()); Statement stmt = con.createstatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet rs = stmt.executequery( "SELECT id_prac,nazwisko,placa_pod FROM pracownicy"); rs.last(); rs.updatestring(,rs.getstring()+""); rs.updatefloat("placa_pod", new Float(rs.getFloat()*0.9)); rs.updaterow();// albo rs.cancelrowupdates(); rs.movetoinsertrow(); rs.updateint(,0); rs.updatestring(,"zieliński"); rs.updatefloat(,new Float(.5)); rs.insertrow(); 5 6

Wyjątki Procedury składowane Statement stmt; try { stmt=con.createstatement(); stmt.executeupdate( "DELETE FROM pracownicy WHERE nazwisko='weglarz'"); catch (SQLException e) { System.out.println("Stan SQL: "+e.getsqlstate()); System.out.println("Kod błędu: "+e.geterrorcode()); System.out.println("Komunikat: "+e.getmessage()); CallableStatement stmt = con.preparecall( "{call WstawZespol(?,?,?)"); stmt.setint(,60); stmt.setstring(, "NOWY ZESPÓŁ"); stmt.setstring(, "PIOTROWO A"); stmt.execute(); 7 8 Funkcje składowane CallableStatement stmt = con.preparecall( "{? = call PoliczPracownikow(?)"); 5 6 stmt.setstring(, "ALGORYTMY"); stmt.registeroutparameter(,types.integer); stmt.execute(); int vliczbapracownikow = stmt.getint(); 9