Metody dostępu do danych

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

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

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Połączenie z bazą danych

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

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

JAVA I BAZY DANYCH. MATERIAŁY:

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

Bazy danych wykład dwunasty

JDBC (Java Database Connectivity vit )

Wprowadzenie do JDBC z wykorzystaniem bazy H2

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

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

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

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

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

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

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

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

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

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

Database Connectivity

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

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

PHP: bazy danych, SQL, AJAX i JSON

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

Java Database Connectivity

Bazy Danych i Usługi Sieciowe

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

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

1) Przygotowanie środowiska pracy.

Metody dostępu do danych

Programowanie Obiektowe Java

Bazy danych i usługi sieciowe

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

PROJEKTOWANIE SYSTEMU INFORMATYCNEGO

Język SQL, zajęcia nr 1

Podejście obiektowe do relacyjnych baz danych Hibernate.

Podstawy programowania III WYKŁAD 2

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Programowanie Obiektowe Java

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

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

Dostęp do baz danych przy wykorzystaniu interfejsu JDBC

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

Programowanie w języku Java

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

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

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

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

Programowanie w języku Java WYKŁAD

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

15. Funkcje i procedury składowane PL/SQL

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Kurs programowania aplikacji bazodanowych

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

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

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

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

Programowanie obiektowe

Bartosz Jachnik - Kino

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Programowanie w Ruby

Metody dostępu do danych

Wykład 05 Bazy danych

METODY PROGRAMOWANIA

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

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

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

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

Administracja i programowanie pod Microsoft SQL Server 2000

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

Technologia informacyjna

Sprzeg podstawowy do baz danych w PHP Mateusz Sowa, 2007

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

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Jerzy Nawrocki, Wprowadzenie do informatyki

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

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

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

Java Database Connectivity

Aplikacje Internetowe

SQL 4 Structured Query Lenguage

Bazy danych 7. SQL podstawy

Bazy danych. Dr inż. Paweł Kasprowski

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Imię i Nazwisko Data Ocena. Laboratorium 7

Bazy danych. Polecenia SQL

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

Programowanie w Ruby

Paweł Rajba

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

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

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

Wykład 4. Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy. Bazy danych 2

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

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

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

Transkrypt:

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 Mapping Hibernate - object-relational mapping for Java

JDBC Java DataBase Connectivity 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 zaprojektowanego przez Microsoft łącza ODBC

JDBC umożliwia Nawiązanie połączenia ze źródłem danych jakim jest baza danych Producenci baz danych udostępniają sterowniki umożliwiające połączenie bazy danych z aplikacją Przetwarzanie zapytań wybierających i zmieniających Pobiera i przetwarza wyniki zwrócone przez bazę danych

Architektura dostępu do danych Model dwuwarstwowy umożliwia połączenie aplikacji / apletu ze źródłem danych. Dane wędrują pomiędzy serwerem bazy danych, a aplikacją klienta. Model trójwarstwowy - W modelu trójstopniowym, polecenia są wysyłane do warstwy pośredniej, która następnie wysyła polecenia do źródła danych. Źródło danych przetwarza polecenia i wysyła wyniki z powrotem do warstwy pośredniej, która następnie wysyła je do użytkownika. Model trójwarstwowy jest popularny, ponieważ warstwa środkowa pozwala zachować kontrolę nad dostępem i rodzajem aktualizacji, które mogą być wprowadzone.

JDBC - inicjacja Załadowanie sterownika dla dedykowanej bazy danych Oracle Class.forName("oracle.jdbc.driver.OracleDriver") SQLite Class.forName("org.sqlite.JDBC"); Mysql Class.forName("com.mysql.jdbc.Driver"); ODBC Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Nawiązanie połączenia z BD Po załadowaniu sterownika odpowiedniej bazy danych dalszą obsługą połączenia z bazą zajmuje się klasa DriverManager. Do nawiązania połączenia służy statyczna metoda: static Connection getconnection(string url) static Connection getconnection(string url, Properties info) static Connection getconnection ( String url, String user, String password)

URL nawiązanie połączenia URL to adres usługi, którą chcemy wykorzystać. Adres usługi to: jdbc:subprotocol:subname jdbc to nazwa protokołu jakim będzie się posługiwał sterownik subprotocol szczegółowe ustawienia protokołu typ sterownika bazy danych (np: mysql, odbc, oracle) subname nazwa źródła danych

URL - przykłady "jdbc:sqlite:test.db" połączenie z plikową bazą danych SQLite zapisaną w pliku test.db "jdbc:oracle:thin:@oracle2.icis.pcz.pl:15 21:ICIS" połączenie z bazą Oracle "jdbc:odbc:fred" połączenie ze źródłem danych odbc o nazwie Fred "jdbc:mysql://localhost/feedback" - połączenie do bazy MySql na lokalnym komputerze z bazą danych o nazwie feedback

Nawiązanie połączenia z BD try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) {} Connection connection = null; try { String servername = "oracle2.icis.pcz.pl"; String portnumber = "1521"; String sid = "ICIS"; String url = "jdbc:oracle:thin:@" + servername + ":" + portnumber + ":" + sid; String username = "******"; String password = "******"; connection = DriverManager. getconnection(url, username, password); if (connection!= null) System.out.println("OK"); } catch (SQLException e) {} // operacje na bazie danych connection.close();

Operowanie na danych DriverManager getconnection createstatement Connection Statement executequery executeupdate ResultSet int

Wykonanie zapytań Aby wykonać zapytanie na otwartej bazie przekazujemy łańcuch z zapytaniem SQL do metody: boolean execute(string sql) Wynikiem zapytania będzie prawda zapytanie zwracające wynik typu tabela, fałsz brak wyniku lub wynik w postaci liczby zmienionych wierszy. Wyjątek SQLException jeśli wystąpi błąd w zapytaniu. Odczyt poprawnego wyniku: ResultSet getresultset() int getupdatecount()

Wykonanie zapytań zmieniających Zapytania zmieniające typu UPDATE, INSERT, DELETE, DROP TABLE, CREATE TABLE wykonywane są za pośrednictwem metody: int executeupdate(string sql) klasy Statement. Wynikiem zapytania będzie liczba zmienionych wierszy. Wywołanie wyjątku SQLException następuje w momencie gdy wystąpi błąd zapytania, połączenie z bazą jest zamknięte lub wynikiem zapytania będzie ResultSet.

Wykonanie zapytań wybierających Do wykonywania zapytań wybierających (SELECT * FROM) przeznaczona jest metoda: ResultSet executequery(string sql) Wynikiem wywołania metody jest ResultSet obiekt zawierający dane, które są wynikiem wykonania zapytania. Błędne wykonanie zapytania spowoduje wywołanie wyjątku SQLException. Zapytanie nie zwróci wartości null!!!

Klasa ResultSet Klasa służy do przechowywania wyniku zapytania wykonanego na powiązanej bazie danych. Klasa przechowuje kursor wskazujący na aktualny wiersz tabeli. Klasa posiada metody pozwalające odczytać wartości na poszczególnych kolumnach za pomocą nazwy lub indeksu kolumny (indeks rozpoczyna się od wartości 1). W wersji JDBC 2.0 wprowadzono możliwość wstawiania wierszy oraz modyfikacji wartości przechowywanych w kolumnach i zapisie tych wartości w bazie danych.

ResultSet odczyt wartości Wybrane metody odczytu wartości w komórkach wiersza boolean getboolean(int columnindex) int getint(int columnindex) Date getdate(int columnindex) RowId getrowid(int columnindex) getbyte, getbytes, getclob, getdouble, getfloat, getlong, getstring, gettime, gettimestamp Dla wartości NULL zwracane jest 0 lub adres pusty null

ResultSet - zarządzenie boolean first() - pierwszy boolean next() - nastepny boolean previous() - poprzedni boolean last() -ostatni boolean relative(int rows) przesuń się o.. boolean absolute(int row) przesuń się do...

ResultSet - pozycja boolean isafterlast() - za ostatnim boolean isbeforefirst() - przed pierwszym boolean isclosed() - zamknięty kursor boolean isfirst() - pierwszy boolean islast() - ostatni int getrow() - zwraca numer aktualnej krotki wyniku

ResultSet modyfikacja wartości void updatestring(int columnindex, String x) - zmiana zawartości aktualnego wiersza (updateboolean, updateint,...) void updaterow() - zapamiętanie zmian void movetoinsertrow() - rozpoczęcie wprowadzania nowego wiersza void insertrow() - wprowadzanie wiersza do bazy void deleterow() - usuwanie wiersza z bazy void movetocurrentrow() - pozycja po modyfikacji

Przykład Statement stmt = null; try { stmt = connection.createstatement(); try { stmt.executeupdate("create table people (name VARCHAR(20), occupation VARCHAR(20))"); } catch (SQLException e) {} stmt.executeupdate("insert into people values ('Gandhi', 'politics')"); stmt.executeupdate("insert into people values ('Turing', 'computers')"); stmt.executeupdate("insert into people values ('Wittgenstein', 'smartypants')");

Przykład ResultSet rs = stmt.executequery( "select * from people"); while (rs.next()) { long row = rs.getrow(); String name = rs.getstring(1); String occupation = rs.getstring(2); System.out.println("Wiersz " + row + " = " + name + " " + occupation); } rs.close(); try { stmt.executeupdate("drop table people"); } catch (SQLException e) {}

Przykład } catch (SQLException e) { e.printstacktrace(); } try { stmt.close(); } catch (SQLException e) { e.printstacktrace(); }