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



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

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

JAVA I BAZY DANYCH. MATERIAŁY:

JDBC (Java Database Connectivity vit )

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

PHP: bazy danych, SQL, AJAX i JSON

Pojęcie systemu baz danych

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

Dokumentacja aplikacji Szachy online

Paweł Rajba

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

Database Connectivity

Podejście obiektowe do relacyjnych baz danych Hibernate.

Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Kurs programowania aplikacji bazodanowych

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

Serwery Aplikacji "CC" Grzegorz Blinowski. tel (22) ; faks (22)

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

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

Metody dostępu do danych

Technologia informacyjna

Oracle PL/SQL. Paweł Rajba.

Migracja do PostgreSQL za pomocą narzędzi Enterprise DB

Aplikacje Internetowe, Servlety, JSP i JDBC

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

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

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

dziennik Instrukcja obsługi

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

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

Specyfikacja implementacyjna aplikacji serwerowej

Testowanie aplikacji JAVA Laboratorium 8 (Tabele w scenariuszach JBehave. Projekt z podstaw BDD oraz atrap.)

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

Programowanie Komponentowe WebAPI

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Politechnika Śląska, Instytut Informatyki

Wybrane działy Informatyki Stosowanej

Java Database Connectivity

Java Persistence API - zagadnienia zaawansowane

Red Hat Network Satellite Server

Instrukcja instalacji v2.0 Easy Service Manager

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

PRZEWODNIK PO PRZEDMIOCIE

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Obsługa transakcji rozproszonych Java. Marek Wojciechowski, Maciej Zakrzewicz Instytut Informatyki, Politechnika Poznańska

Administracja i programowanie pod Microsoft SQL Server 2000

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

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Wstęp. Modele rejestrowania zdarzeń systemu

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

WYMAGANIA EDUKACYJNE

Programowanie obiektowe

Serwery Statefull i Stateless

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Funkcje backendu konfiguratora. Warszawa,

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Konspekt pracy inżynierskiej

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

dlibra 3.0 Marcin Heliński

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Biuletyn techniczny. Konfiguracja połączenie z serwerem MSSQL 2000 CDN OPT!MA Copyright 2006 COMARCH SA

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

ERDAS ADE Suite edytor baz danych Oracle Spatial

Programowanie w języku Java WYKŁAD

Ełk, dn r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, Ełk. Nip ZAPYTANIE OFERTOWE

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Projekt: MS i CISCO dla Śląska

Programowanie zespołowe

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Monitorowanie Sieci nonblocking content packet filtering

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar.

Podstawy programowania III WYKŁAD 2

Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.

Komunikator internetowy w C#

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Podstawy frameworka Spring

Kurs programowania aplikacji bazodanowych

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Wybrane działy Informatyki Stosowanej

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Architektura mikroserwisów na platformie Spring IO

ShopGold Integrator by CTI. Instrukcja

Bazy danych. Dr inż. Paweł Kasprowski

Transkrypt:

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

Sterownik JDBC co to jest? Sterownik JDBC to zbiór klas implementujących interfejsy opisane w specyfikacji JDBC Sterownik JDBC pozwala na wykorzystanie zestandaryzowanego sposobu obsługi bazy danych w Javie Sterownik JDBC przyjmuje podejście relacyjne implementacja dla LoXiMu będzie ciekawa

Sterownik JDBC do LoXiM po co? Pokazanie, że LoXiMu da się używać! Używać = stosować jako bazę danych do aplikacji / większych systemów Zintegrować API klienckie LoXiMu z jakimś standardem Umożliwić testowanie LoXiMu w warunkach nie tylko laboratoryjnych, ale quasi-produkcyjnych Umożliwić programistyczne, a nie tylko konsolowe testowanie LoXiMu

Sterownik JDBC do LoXiM po co? Stworzyć podwaliny pod integrację LoXiMu z serwerami aplikacji przez systemy ORM (np. Hibernate), które korzystają ze sterowników JDBC. Takie rozwiązanie ostatecznie udowodniło by produkcyjną użyteczność LoXiMu

JDBC typ 1 Mostek JDBC-ODBC Mostek tłumaczy wywołania JDBC na ODBC (Open DataBase Connectivity) i wysyła je do serwera ODBC.

JDBC typ 1 Za: jeśli istnieje sterownik ODBC (jak przypadku wielu systemów baz danych), mostek umożliwia łatwe użycie go w Javie Przeciw: w przypadku LoXiM sterownika ODBC nie ma, więc ten typ w ogóle nie wchodzi w grę obniżenie wydajności spowodowane tłumaczeniem wywołań JDBC na ODBC i w drugą stronę sterownik ODBC musi być zainstalowany na maszynie klienta uniemożliwienie używania np. apletów

JDBC typ 2 Sterownik Javowy z kodem macierzystym Sterownik pisany w Javie, ale z metodami operującymi na konkretnym systemie bazodanowym napisanymi w kodzie macierzystym

JDBC typ 2 Za: lepsza wydajność niż typ 1 Przeciw: niższa wydajność niż typ 3 i 4 biblioteki macierzyste muszą być zainstalowane na maszynie klienta uniemożliwienie używania np. apletów

JDBC typ 3 Sterownik w pełni Javowy z serwerem pośredniczącym Sterownik porozumiewa się z serwerem pośredniczącym za pomocą protokołu sieciowego, a serwer używa JDBC typu 1 lub 2, żeby łączyć się z bazą danych

JDBC typ 3 Za: sterownik po stronie klienta jest lekki, bez bibliotek odpowiedzialnych za konkretną obsługę bazy sterownik najczęściej wspiera cache'owanie, równoważenie obciążenia, funkcje administracyjne (np. logowanie, nadzór) Przeciw: potrzebny jest serwer pośredniczący ze sterownikiem typu 1 lub 2

JDBC typ 4 Sterownik w pełni Javowy ze specyficznym protokołem Sterownik w pełni napisany w Javie, porozumiewający się bezpośrednio z bazą danych po specyficznym dla niej protokole

JDBC typ 4 Za: możliwość dynamicznego ładowania nie trzeba instalować dodatkowych bibliotek na kliencie ani serwerze wysoka wydajność (nie ma potrzeby tłumaczenia, jak w przypadku typów 1, 2, 3) Przeciw: każdy system bazodanowy potrzebuje własnego sterownika

Składniki (interfejsy) JDBC 3.0 JDBC składa się z ~20 interfejsów. 8 z nich jest kluczowych. W MySQL i HSQL większość z nich ma ~4000 linii kodu. Wniosek: implementuję podstawowe wymagania. Sterownik JDBC nie musi wspierać operacji, których nie wspiera sama baza danych Istnieje SUNowska JDBC API Test Suite 1.3.1 testująca czy sterownik spełnia nałożone wymagania

Składniki (interfejsy) JDBC 3.0 Interfejsy podstawowe (trzeba zaimplementować je w pełni): java.sql.driver nawiązuje połączenie z DB java.sql.databasemetadata zwraca różne informacje o DB (mnóstwo metod typu Czy DB obsługuje... ) java.sql.resultsetmetadata zwraca różne informacje o kolumnach w zbiorze wyników (liczba, nazwy, typy kolumn, czy nulle są dozwolone itp.)

Składniki (interfejsy) JDBC 3.0 Interfejsy podstawowe (niektóre metody są opcjonalne, jeśli np. DBMS ich nie wspiera): CallableStatement interfejs do wywoływania procedur SQL. Nie zamierzam implementować Connection połączenie (sesja) z DB. To tu są commit, rollback, close i tworzenie zapytań PreparedStatement prekompilowane zapytanie. Nie zamierzam implementować ResultSet ogromny interfejs do poruszania się po wierszach i kolumnach wyniku zapytania Statement zapytanie. Wykonujemy je i odbieramy wynik

Moje cele Napisać sterownik typu 4 zgodny z JDBC 3.0, ew. 4.0. JDBC 4.0 nie jest tak dobrze udokumentowany i rozszerza 3.0, więc na potrzeby LoXiMu wymagania JDBC 3.0 wystarczą, potem można oczywiście rozwijać. Napisać dobry, gruntownie przetestowany i udokumentowany kod umożliwiający późniejszy rozwój (lepiej podstawowe wymagania na 100 % niż więcej na 70 %) Sterownik JDBC ma sens tylko jeśli będzie później wykorzystywany

Moje cele Przejść jak najwięcej testów SUNa JDBC API Test Suite 1.3.1 z zagadnień objętych pracą magisterską Na SZBD-lab: Implementacja protokołu sieciowego Piotrka Tabora. Integracja z serwerem Marka Dopiery Kryterium sukcesu: sterownik łączy się (i rozłącza) z LoXiMem Na pracę magisterską: Priorytet: wysyłanie zapytań SELECT i odbieranie wyników Jeśli okaże się proste: UPDATE i DELETE

Z czego skorzystam? Z doświadczeń Marcina Pieli w egzekutorze SQL do LoXiM#, żeby skonwertować podejście relacyjne JDBC do potrzeb LoXiMu Z opisu interfejsu quasi-jdbc Odry Ze sterowników open-source: HSQLDB (Hypersonic) i MySQL. Oraz być może innych. Dokumentacja JDBC 3.0 i 4.0 SUNa JDBC API Test Suite 1.3.1 Java 6