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

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

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

Metody dostępu do danych

JAVA I BAZY DANYCH. MATERIAŁY:

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

JDBC (Java Database Connectivity vit )

Wprowadzenie do JDBC z wykorzystaniem bazy H2

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

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

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

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

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

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

Podejście obiektowe do relacyjnych baz danych Hibernate.

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

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

Połączenie z bazą danych

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

Język SQL, zajęcia nr 1

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

Bazy danych wykład dwunasty

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

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

Aplikacje Internetowe

Programowanie Obiektowe Java

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

Java Database Connectivity

Programowanie Obiektowe Java

Programowanie w języku Java

Database Connectivity

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

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

Systemy GIS Tworzenie zapytań w bazach danych

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

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Programowanie obiektowe

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bartosz Jachnik - Kino

Ref. 7 - Język SQL - polecenia DDL i DML

Projektowanie systemów baz danych

Relacyjne bazy danych. Podstawy SQL

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Bazy danych SQLite w Javie

Podstawy programowania III WYKŁAD 2

PHP: bazy danych, SQL, AJAX i JSON

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

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Programowanie w Ruby

Wywoływanie metod zdalnych

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

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

Java rozszerzenie. dr. A. Dawid

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

Relacyjne bazy danych. Podstawy SQL

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Wykorzystywanie parsera DOM w programach Java i PL/SQL

1.1. System otwartych baz danych ODBC. System otwartych baz danych ODBC. Interfejs ODBC. Interfejs ODBC. System otwartych baz danych ODBC

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Wykład 05 Bazy danych

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

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

15. Funkcje i procedury składowane PL/SQL

Podstawowe informacje o bazach danych. Technologie Informacyjne

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Technologia informacyjna

Aplikacje Internetowe

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

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

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

Kurs programowania aplikacji bazodanowych

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Wywoływanie metod zdalnych

P o d s t a w y j ę z y k a S Q L

Programowanie obiektowe zastosowanie języka Java SE

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Wykład 8. SQL praca z tabelami 5

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Bazy Danych i Usługi Sieciowe

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

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

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

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Remote Method Invocation 17 listopada 2010

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

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

Podejście obiektowe do budowy systemów rozproszonych

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

1 Wprowadzenie do J2EE

PROJEKTOWANIE SYSTEMU INFORMATYCNEGO

Przestrzenne bazy danych Podstawy języka SQL

Transkrypt:

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 Query Language) Praca z bazą danych poprzez JDBC

Technologia JDBC (ang. Java DataBase Connectivity). " Interfejs niezależny od architektury bazy danych używanej podczas projektowania danego systemu " Pomostem pomiędzy przestrzeniami bazy danych i aplikacji, napisanej w języku Java. " Interfejs ten operuje na poziomie typowego dla baz danych języka SQL (ang. Structured Query Language)

JDBC (ang. Java DataBase Connectivity - łącze do baz danych w języku Java) - interfejs programowania opracowany w 1996 r. przez Sun Microsystems, umożliwiający niezależnym od platformy aplikacjom napisanym w języku Java porozumiewać się z bazami danych za pomocą języka SQL. Interfejs ten jest odpowiednikiem standardu ODBC opracowanego przez SQL Access Group. Środowisko Java Platform, Standard Edition zawiera API JDBC, natomias użytkownik musi uzyskać specjalny sterownik JDBC do swojej bazy danych. Możliwe jest łączenie się z ODBC przez specjalne sterowniki tłumaczące odwołania JDBC na komendy ODBC.

ODBC (ang. Open DataBase Connectivity - otwarte łącze baz danych) - interfejs pozwalający programom łączyć się z systemami zarządzającymi bazami danych. Jest to API niezależne od języka programowania, systemu operacyjnego i bazy danych. Standard ten został opracowany przez SQL Access Group we wrześniu 1992 roku. W skład ODBC wchodzą wywołania wbudowane w aplikacje oraz sterowniki ODBC. Pierwsza implementacja ODBC pojawiła się w systemie Microsoft Windows, lecz obecnie możliwe jest korzystanie z niego na platformach Unix, OS/2 oraz Macintosh. W systemach bazodanowych typu klient-serwer (np. Oracle lub PostgreSQL) sterowniki dają dostęp do silnika baz danych, natomiast w programach dla komputerów osobistych sterowniki sięgają bezpośrednio do danych. Mechanizm ODBC współpracuje zarówno z bazami obsługującymi język SQL, jak i nieobsługującymi go - w tym ostatnim przypadku język SQL jest przekładany na oryginalny język bazy danych.

Etapy pracy " utworzenie połączenia z bazą danych, " wysłanie polecenia (poleceń) SQL, " przetworzenie otrzymanych wyników.

Sterownikiem JDBC, łączącym naszą aplikację z konkretną bazą danych, nazywamy zestaw klas, które implementują interfejs JDBC. M e n a d ż e r s t e r o w n i k ó w - dynamicznie zarządza obiektami sterowników. Obiekty te będą wykorzystywać nasze zapytania do bazy danych.

Utworzenie połączenia z bazą danych tworzenie obiektu Connection. statycznya metoda DriverManager.getConnection(). java.sql.connection conn = null; conn=drivermanager.getconnection(baza, user, pass); String baza = "jdbc:mysql://olimp.if.pw.edu.pl/pojava"; String user = "pojava"; String pass = "Java";

Nazwa bazy danych 3 człony jdbc:<subprotocol>:<subname> Typ protokołu nazwa sterownika lub mechanizmu połączenia do bazy danych msql - sterownik dla bazy msql, odbc -mechanizm dla sterowników typu ODBC.

adres zależy od sterownika czy mechanizmu połączeń i może zawierać dodatkowe rozszerzenia zgodnie z koncepcją przyjętą przez twórcę sterownika. Standardowo omawiana część adresu wygląda następująco: //hostname:port/subsname

getconnection(string url, String user, String password)

Sterowniki - klasa DriverManager import java.sql.drivermanager; import java.sql.connection;; String url = "jdbc:mysql://olimp.if.pw.edu.pl/pojava"; username = "pojava"; String password = "Java"; try { Class.forName("com.mysql.jdbc.Driver").newInstance();//ładowanie sterownika - most JDBC-ODBC } catch (Exception e) {System.out.println("Blad ladowania sterownika JDBC/ODBC."); return; } Connection c = null; try {c = DriverManager.getConnection (url, username, password); //połączenie } catch (Exception e) { System.err.println("Wystapil problem z polaczeniem do "+url); }

Co mamy w sterownikach? sterowniki JDBC odwzorowanie sterowników Open Database Connectivity ODBC sterowniki JDBC- s. 9-5??

Wysyłanie polecenia SQL W celu wysłania polecenia SQL należy stworzyć obiekt Statement. Statement s = null; Connection con = null; con=drivermanager.getconnection(url,username,password); s=con.createstatement(); Obiekt s stanowi kontener dla wykonywanych poleceń SQL.

obiekt Statement Metoda: createstatement() executequery(): do SQL poleceń, których efekt daje pojedynczy zbiór rezultatów ResultSet np. wyrażenie SELECT wybierz. executeupdate(): do poleceń INSERT, UPDATE oraz DELETE, a także wyrażeń typu SQL DDL (Data Definition Language - język definicji danych): CREATE TABLE i DROP TABLE.

INSERT/UPDATE/DELETE " Modyfikację jednej lub więcej kolumn w zero i więcej wierszach tabeli. " Zwracana wartość w wyniku działania metody executeupdate() to liczba całkowita wskazująca ilość rzędów, które podlegały modyfikacjom. " W przypadku DLL wartość 0 s = conn.createstatement(); // tworzenie obiektu Statement przesylajacego zapytania do bazy conn ResultSet r; r=s.executequery("select * from meteo;"); // wykonanie kwerendy i przeslanie wynikow do obiektu ResultSet r.next(); // przejscie do kolejnego rekordu (wiersza) otrzymanych wynikow

PreparedStatement Metoda: preparestatement() Obiekt używany jest do wykonywania prekompilowanych (przygotowanych - prepared) poleceń SQL zawierających jedno lub więcej pól parametrów (oznaczanych znakiem "?"; tzw. parametry IN) własne metody execute(), executeupdate() oraz executequery(). wyrażenia SQL musi być przygotowane wcześniej, w obiekcie PreparedStatement ps = c.preparestatement("insert INTO kurs VALUES (?,?,?)"); ps.setstring(1,"mariusz"); ps.setstring(2,"mk"); ps.setint(1, 28); ps.executeupdate();

CallableStatement Metoda: preparecall() Obiekt jest wykorzystywany do stworzenia odwołania (call) do przechowywanych w bazie danych procedur. W pracy z zewnętrznymi procedurami przechowywanymi poza kodem programu. stworzenie wyrażenia typu CallableStatement podanie jako parametru metody Connection.prepareCall() sekwencji ucieczki typu {call procedure_name[(?,?)]} lub {? = call procedure_name[(?,?)]} w przypadku gdy procedura zwraca wartość.

Przykład przygotowanie danych SQL import java.sql.*; public class DBkurs { static String[] SQL = { "CREATE TABLE kurs ("+ "uczestnik varchar (32),"+ "inicjaly varchar (3),"+ "wiek integer)", "INSERT INTO kurs VALUES ('Jarek', 'JS', 30)", "INSERT INTO kurs VALUES ('Andrzej', 'AM', 27)", "INSERT INTO kurs VALUES ('Ania', 'AM', 20)", "INSERT INTO kurs VALUES ('Marcin', 'MH', 25)", }; Java->JDBC->SQL->DBMS

Sterowniki... public static void main(string[] args) { String url = "jdbc:odbc:kurs"; String username = ""; String password = ""; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (Exception e) { System.out.println("Blad ladowania sterownika JDBC/ODBC."); return; }

Połączenie... Statement s = null; Connection c = null; try { c = DriverManager.getConnection (url, username, password); s = c.createstatement(); } catch (Exception e) { System.err.println("Wystapil problem z polaczeniem do "+url); }

SQL try { for (int i=0; i<sql.length; i++) { s.executeupdate(sql[i]); } c.close(); } catch (Exception e) { System.err.println("Wystapil problem z wyslaniem SQL do "+url+ ": "+e.getmessage()); } }

Przykład 2 public class DBkurs2 { static String SQL = "CREATE TABLE kurs ("+"uczestnik varchar (32),"+ "inicjaly varchar (3),"+ "wiek integer)"; public static void main(string[] args) { String url = "jdbc:odbc:kurs"; String username = ""; String password = ""; String[] imie= {"Jarek","Andrzej","Ania","Marcin"}; String[] inic={"js","am", "AM", "MH"}; int[] lat={30,27,20,25};

Sterowniki... try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (Exception e) { System.out.println("Blad ladowania sterownika JDBC/ODBC."); return; }

Łączymy Connection c = null; Statement s = null; PreparedStatement ps = null; try { c = DriverManager.getConnection (url,username,password); s = c.createstatement(); } catch (Exception e) { System.err.println("Wystapil problem z polaczeniem do "+url); }

try { s.executeupdate(sql); s.close(); ps = c.preparestatement("insert INTO kurs VALUES (?,?,?)"); for(int n=0; n<4; n++){ ps.setobject(1,imie[n]); //setobject zamiast setstring z uwagi na problemy z konwersją typów danych do Text File ODBC (MS) ps.setobject(2,inic[n]); ps.setint(3, lat[n]); ps.executeupdate(); } ps.close(); } catch (Exception e) { System.err.println("Wystapil problem z wyslaniem SQL do "+url+ ": "+e.getmessage()); }

finally{ try{ c.close(); } catch(sqlexception e) { e.printstacktrace(); } }

Analiza odpowiedzi executeupdate() zwraca liczbę zmienionych wierszy executequery() obiekt typu ResultSet (wszystkie rekordy) dostęp do kolejnych danych/rekordów ResultSet.next() odczyt wartości pól za pomocą metod typu getxxx() XXX typ danych ResultSet r=s.executequery("select uczestnik, inicjaly, wiek FROM kurs"); while(r.next()){ n++; imie=r.getstring(1); dane inic=r.getstring(2); lata=r.getint(3); Identyfikator kolumny: numer lub nazwa kolumny System.out.println("Dane rekordu nr: "+n+" to: "+imie+", "+inic+", "+lata); }

Informacja o kolumnach obiektu Informacjea o kolumnach obiektu ResultSet dostępne są poprzez wywołanie metod interfejsu ResultSetMetaData, którego obiekt zwracany jest poprzez przywołanie metody ResultSet.getMetaData. Przykładowe własności kolumn to nazwa kolumnygetcolumnname(), czy typ kolumny getcolumntype().

Hibernate realizuje podejście mapowania obiektów na struktury danych składowanych w relacyjnych bazach danych