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

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

Ć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

Połączenie z bazą danych

JAVA I BAZY DANYCH. MATERIAŁY:

JDBC (Java Database Connectivity vit )

1) Przygotowanie środowiska pracy.

Bazy danych wykład dwunasty

Metody dostępu do danych

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Dostęp do baz danych przy wykorzystaniu interfejsu JDBC

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

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

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

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

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

Podejście obiektowe do relacyjnych baz danych Hibernate.

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

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

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

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

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

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

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

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

Aplikacje Internetowe

Programowanie Obiektowe Java

Programowanie Obiektowe Java

Java Database Connectivity

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

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

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

Java Database Connectivity

Java rozszerzenie. dr. A. Dawid

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

Aplikacje WWW - laboratorium

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

Technologia JDBC w praktyce

Bartosz Jachnik - Kino

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

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

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Podstawy programowania III WYKŁAD 2

Bazy danych. Dr inż. Paweł Kasprowski

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

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

Bazy Danych i Usługi Sieciowe

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

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

METODY PROGRAMOWANIA

Bazy danych i usługi sieciowe

Programowanie Obiektowe Java

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

Programowanie w języku Java

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

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

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

Procedury i funkcje składowane

Wzorce logiki dziedziny

PHP: bazy danych, SQL, AJAX i JSON

Kurs programowania aplikacji bazodanowych

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

PROJEKTOWANIE SYSTEMU INFORMATYCNEGO

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Programowanie wielowarstwowe i komponentowe

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Aplikacje Internetowe

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

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

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

Database Connectivity

Struktura bazy danych

SQLJ w Oracle9i rozszerzenia standardu

Aplikacje WWW - laboratorium

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

Aplikacje WWW - laboratorium

Imię i Nazwisko Data Ocena. Laboratorium 7

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

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

Ćwiczenie 6 - DML. Tworzenie, modyfikacja i usuwanie krotek. Podstawy poleceń COMMIT i ROLLBACK. Ćwiczenie 6 DML. Wymagania: Bazy Danych

Relacyjny model danych

Ćwiczenia 2 IBM DB2 Data Studio

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

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

Kursory. A. Pankowska 1

Dostęp do baz danych w aplikacjach Java EE

Administracja i programowanie pod Microsoft SQL Server 2000

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

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, zajęcia nr 1

Paweł Rajba

Metody dostępu do danych

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Ćwiczenie zapytań języka bazy danych PostgreSQL

15. Funkcje i procedury składowane PL/SQL

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Programowanie w języku Java WYKŁAD

Technologia informacyjna

Transkrypt:

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 transakcjami. Prekompilowane polecenia. Ćwiczenie 0 JDBC Ćwiczenie 0 JDBC () Plan ćwiczenia cd. Wprowadzenie do laboratorium Zwiększanie liczby przesyłanych krotek. Aktualizowanie wsadowe. Modyfikowalne zbiory wyników. SQLJ. Podsumowanie. Program napisany w języku Java JDBC API MenadŜer sterowników JDBC Typ Typ Typ Typ JDBC - ODBC ODBC Biblioteka DB Opr. pośrednie SZBD Ćwiczenie 0 JDBC () Ćwiczenie 0 JDBC ()

Nawiązywanie i zamykanie połączeń Wykonywanie zapytań import java.sql.*; Statement stmt = con.createstatement() ; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@dblab.cs.put.poznan.pl:5:dblab0g", "elearning_user", "elearning_pass"); con.close(); "SELECT nazwisko,placa_pod FROM pracownicy"); String nazwisko=rs.getstring("nazwisko"); float placa=rs.getfloat(); System.out.println(nazwisko+" "+placa); Ćwiczenie 0 JDBC (5) Ćwiczenie 0 JDBC (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"); 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; Ćwiczenie 0 JDBC (7) Ćwiczenie 0 JDBC (8)

Zarządzanie transakcjami cd. Prekompilowane polecenia con.setautocommit(false); Statement stmt=con.createstatement(); System.out.println(ilePracownikow(con)); // "DELETE FROM pracownicy WHERE id_prac=50"); 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"); con.commit(); System.out.println(ilePracownikow(con)); // stmt.setint(,70); rs=stmt.executequery(); System.out.println(rs.getString("NAZWISKO")); Ćwiczenie 0 JDBC (9) Ćwiczenie 0 JDBC (0) Prekompilowane polecenia cd. 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"); Ćwiczenie 0 JDBC () Ćwiczenie 0 JDBC ()

Zwiększanie przesyłanej liczby krotek Przewijalne zbiory wyników Statement stmt = con.createstatement(); ((OracleStatement)stmt).setRowPrefetch(0); Statement stmt = con.createstatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); "SELECT nazwisko FROM pracownicy"); while (rs.next()) System.out.println(rs.getString()); 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()); Ćwiczenie 0 JDBC () Ćwiczenie 0 JDBC () Modyfikowalne zbiory wyników Wyjątki 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(); 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()); rs.movetoinsertrow(); rs.updateint(,0); rs.updatestring(,"zieliński"); rs.updatefloat(,new Float(.5)); rs.insertrow(); System.out.println("Komunikat: "+e.getmessage()); Ćwiczenie 0 JDBC (5) Ćwiczenie 0 JDBC (6)

SQLJ Podsumowanie import oracle.sqlj.runtime.oracle; import java.sql.*; #sql iterator MyIter (String nazwisko); Oracle.connect("jdbc:oracle:thin:@dblab.cs.put.poznan.pl: 5:dblab0g", elearning_user", elearning_pass"); 5 MyIter zap; #sql zap={select nazwisko from pracownicy; while (zap.next()) System.out.println(zap.nazwisko()); Oracle.close(); JDBC (Java Database Connectivity) to API pozwalające programom napisanym w języku Java na korzystanie z SZBD do zapisywania i odczytywania danych w bazie danych. JDBC pozwala na wykonywanie poleceń SQL tworzonych ad hoc, oraz poleceń prekompilowanych. W JDBC.0 poprzez wyniki zapytań moŝna modyfikować relacje bazowe zapytania, oraz w dowolny sposób je przeglądać. MoŜliwe jest równieŝ równieŝ wsadowe wykonywanie aktualizacji danych. SQLJ pozwala na zagnieŝdŝanie zapytań bezpośrednio w kodzie programów napisanych w języku Java. Ćwiczenie 0 JDBC (7) Ćwiczenie 0 JDBC (8)