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

Podobne dokumenty
Metody dostępu do danych

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

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

Połączenie z bazą danych

Wprowadzenie do JDBC z wykorzystaniem bazy H2

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

JDBC (Java Database Connectivity vit )

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Bazy danych wykład dwunasty

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

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

JAVA I BAZY DANYCH. MATERIAŁY:

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

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

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

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

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

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

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

Programowanie Obiektowe Java

Programowanie Obiektowe Java

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

Relacyjny model danych

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

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

Dostęp do baz danych przy wykorzystaniu interfejsu JDBC

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

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

Java Database Connectivity

Podejście obiektowe do relacyjnych baz danych Hibernate.

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

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

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

PHP: bazy danych, SQL, AJAX i JSON

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

Plan wykładu. Dostęp do bazy danych. Architektura JDBC. Dostęp do baz danych z aplikacji 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

Kurs programowania aplikacji bazodanowych

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

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

Java Database Connectivity

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

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

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

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

SQL 4 Structured Query Lenguage

Autor: Joanna Karwowska

Aplikacje WWW - laboratorium

Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

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

Bazy Danych i Usługi Sieciowe

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

Paweł Rajba

Internetowe bazy danych

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Aplikacje Internetowe

Aplikacje Internetowe, Servlety, JSP i JDBC

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

Database Connectivity

Zaawansowane aplikacje WWW - laboratorium

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

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

Informatyzacja Przedsiębiorstw

Wprowadzenie do Doctrine ORM

Bazy danych i usługi sieciowe

DECLARE VARIABLE zmienna1 typ danych; BEGIN

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Oracle PL/SQL. Paweł Rajba.

15. Funkcje i procedury składowane PL/SQL

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

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

Opracował: Tomasz Neumann Technologia dbexpress w środowisku DELPHI

Podstawowe wykorzystanie Hibernate

Programowanie urządzeń mobilnych. projekt 6 ( )

Podstawy programowania III WYKŁAD 2

Programowanie w języku Java

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Programowanie wielowarstwowe i komponentowe

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Dostęp do baz danych przy wykorzystaniu interfejsu PDO

1) Przygotowanie środowiska pracy.

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

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

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

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

PL/SQL. Zaawansowane tematy PL/SQL

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

Aplikacje Internetowe

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

Wykład 5: PHP: praca z bazą danych MySQL

Baza danych sql. 1. Wprowadzenie

Imię i Nazwisko Data Ocena. Laboratorium 7

PODSTAWY BAZ DANYCH 13. PL/SQL

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Transkrypt:

Laboratorium 8 Wstęp Dostęp do bazy danych: 1. Załadowanie sterownika (drivera) do pamięci np. Class.forName("org.apache.derby.jdbc.ClientDriver"); 2. Podłączenie się do bazy (klasa Connection) Connection con = DriverManager.getConnection(dbUrl, username, passwd); String dburl = konfiguracja połączenia: jdbc:protokół://adres_serwera:port/nazwa_bazy Np. String dburl ="jdbc:derby://localhost:1527/komunikator"; 3. Stworzenie zapytania (klasa Statement): Statement stmt = con.createstatement(); stmt. executeupdate( INSERT INTO data (name) VALUES( Marcin ) ) stmt.close(); con.close(); Typy sterowników: Typ 1 Sterownik który implementuje API JDBC poprzez mapowanie protokołu na inny sterownik dostępu do bazy danych (najczęściej ODBC). Sterowniki tego typu najczęściej bazują na natywnych bibliotekach, które ograniczają ich przenośność. Przykładem sterownika typu 1 jest most JDBC-ODBC Typ 2 Sterowniki częściowo napisane w języku Java oraz częściowo w postaci natywnego kodu. Sterowniki tego typu używają natywnych bibliotek klienta przystosowanych do podłączania się do danego źródła danych. Podobnie jak wyżej ze względu na kod natywny ich przenośność jest ograniczona. Type 3 Sterowniki które używają kodu w pełni napisanego w Javie i komunikują się z serwerem pośredniczącym wykorzystując niezależny od bazy danych protokół. Serwer pośredniczący następnie komunikuje się bezpośrednio ze źródłem danych. Type 4 Sterowniki wykorzystujący kod napisany w pełni w Javie i bazujące na protokole sieciowym uzyskując dostę bezpośrednio do źródła danych. Wywoływanie zapytań: ResultSet rst = stmt.executequery("select * FROM APP");

- executequery wywoływane jest gdy w wyniku zapytania zwracane są wyniki działania zapytania stmt.executeupdate( INSERT INTO COFFEES (COF_NAME) ( Nescafe ) ) - executeupdate wywoływane jest gdy w wyniku zapytanie do BD nic nie jest zwracane. stmt.execute( INSERT INTO COFFEES (COF_NAME) ( Nescafe ) ) - Execute wywołanie dowolnego zapytania do BD, jeśli w wyniku zapytania zwracane są jakieś wartości dostęp do nich możliwy jest poprzez getresultsset() lub getupdatecount() Wyniki zapytań klkasa ResultsSet Obiekt klasy ResultsSet zwracany jest jako wynik operacji na bazie. Możliwe są 3 typy wyników: TYPE_FORWARD_ONLY Wyników nie można przewijać, kursor przewija się jedynie wprzód, od przed pierwszego wiersza do ostatniego +1. Wiersze zawarte w zbiorze wyników zależą od sposobu zwracania wyników przez bazę danych. To znaczy, zawierają wiersze które pasują do zapytania bądź w momencie gdy zapytanie jest wykonywane, lub jak wiersze są pozyskane. TYPE_SCROLL_INSENSITIVE Wyniki są przewijalne; kursor może poruszać się w przód i w tył względem obecnej pozycji, jak i może poruszać się do określonej pozycji absolutnej. Wyniki ogólnie nieczułe na zmiany wprowadzane przez innych TYPE_SCROLL_SENSITIVE Wyniki są przewijalne; kursor może poruszać się w przód i w tył względem obecnej pozycji, jak i może poruszać się do określonej pozycji absolutnej. Czuły na zmiany wprowadzane przez innych Ponadto można określić dodatkowy parametr wyników: CONCUR_READ_ONLY czy wyniki są tylko read-only CONCUR_UPDATABLE czy wyniki są aktualizowalne Określenie typu wyników: Statement stmt = con.createstatement(resultset.type_scroll_sensitive, ResultSet.CONCUR_READ_ONLY); Poruszanie się po zbiorze wyników Po stworzeniu obiektu ResultsSet kursor znajduje się przed pierwszym wierszem. Do poruszania się niem służą metody: next() przesuwa kursor w przód o jeden wiersz. Zwraca logiczną 1 jeśli kursor jest na jednym z istniejących wierszy, lub fałsz jeśli przeszedł ostatni wiersz. previous() przesuwa kursor w tył o jeden wiersz, zwraca true jeśli kursor znajduje się na jednym z istniejących wierszy lub false, jeśli jest przed pierwszym wierszem. first() przesuwa kursor do pierwszego wiersza zbioru ResultsSet. Zwraca true jeśli kursor jest na pierwszej pozycji, lub fałsz jeśli zbiór wyników jest pusty

last() przesuwa kursor do ostatniego wyniku, zwraca true jeśli kursor zostanie umieszczony na ostatnim wierszu lub fałsz jeśli zbiór wyników jest pusty beforefirst() Przesuwa kursor do pozycji przed pierwszej. afterlast() - przesuwa kursor do pozycji ostatni + 1 relative(int rows) Przesuwa kursor do danej pozycji względnej absolute(int row) przesuwa kursor do danej pozycji bezwzględnej Dostęp do wyników z ResultsSet W aktualnej pozycji kursora dostęp realizowany jest przez: getxxx(string colname) lub getxxx(int id) Gdzie colname nazwa kolumny id - numer kolumny XXX nazwa typu danych np. getstring( Name ), getboolean(2), getbyte( wiek ) Statement stmt = con.createstatement(resultset.type_scroll_sensitive, ResultSet srs = stmt.executequery( ResultSet.CONCUR_READ_ONLY); "SELECT COF_NAME, PRICE FROM COFFEES"); while (srs.next()) { String name = srs.getstring("cof_name"); float price = srs.getfloat("price"); System.out.println(name + " " + price); } Aktualizacje wyników W JDBC można dokonywać aktualizacji przez operacje na obiekcie klasy ResultSet: updatexxx(string colname, <XXX> value) updatexxx(int id, <XXX> value) updatestring, updatebyte, updatefloat itp.

Akceptacja wprowadzonych zmian metoda: updaterow() Anulowanie wprowadzonych zmian: cancelrowupdates(); Przykład: uprs.last(); uprs.updatefloat("price", 10.99); uprs.cancelrowupdates(); uprs.updatefloat("price", 10.79); uprs.updaterow(); Dodanie nowego wiersza do ResultsSet W JDBC można dodać nowy wiersz przez operacje na obiekcie klasy ResultSet: Np.. movetoinsertrow() ustawienie kursora na wolnym miejscu updatexx( A,B ) patrz poprzedni slajd insertrow(); - dodanie wiersza do bazy rsr.movetoinsertrow(); rsr.updateint(1, 150); rsr.updatestring(2, "Madonna"); rsr.updatestring(3, "Dummy"); rsr.updatestring(4, "Jazz"); rsr.updatestring(5, "Image"); rsr.updateint(6, 5); rsr.updatedouble(7, 5); rsr.updateint(8, 15); rsr.insertrow(); Usuwanie wiersza W JDBC można usuwać wiersze przez operacje na obiekcie klasy ResultSet: deleterow() usuwa aktualny wiersz. Zadanie 1) Stwórz program łączący się z bazą sample znajdującą się na serwerze 157.158.131.191 i pobierający z niej z tabeli APP.CUSTOMER listę użytkowników. Pobraną listę należy

wyświetlić podając na ekranie NAME, CITY, CUSTOMER_ID. Dodaj do bazy nowego użytkownika 2) Zbuduj komunikator w oparciu o bazę danych. W tym celu wykorzystaj bazę Komunikator na serwerze 157.158.131.191 urzytkownik student hasło: ZAQ12wsx. Baza zawiera tabelę komunikaty składającą się z atrybutów destinationuserid, message, sourceuserid, messageid oraz tabelę Useres składającą się z pól UserID, UserName. Stworzony program powinien składać się z dwóch wątków, w pierwszym zadawany są ciągłe zapytania do bazy danych (co 2s) i jeśli zostanie odnaleziona wiadomość dla danego użytkownika, należy ją wyświetlić i usunąć. Wyświetlanie i usuwanie wiadomości powinno być realizowane w oparciu (w kolejności) o atrybut messageid numerujący poszczególne komunikaty dla danego użytkownika. Drugi wątek powinien wrzucać wiadomości adresowane dla danego użytkownika do bazy, umieszczając jednocześnie odpowiedni znacznik messageid.