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

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

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

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

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

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

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

Języki i metody programowania Java Lab2 podejście obiektowe

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

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

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Komunikatory typu TCP/IP lab2. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

Zastosowanie komponentów EJB typu Session

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Bezpieczne uruchamianie apletów wg

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

STRUMIENIE DANYCH, SERIALIZACJA OBIEKTÓW

Ćwiczenia 9 - Swing - część 1

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

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

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

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

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

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Problemy techniczne SQL Server

Budowa aplikacji wielowarstwowych. Zastosowanie technologii Ajax

Optimed24 Przenoszenie bazy danych PostrgreSQL

sieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer.

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Podstawowe informacje o technologii Java Persistence API - przykład

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

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Git, Bitbucket, IntelliJ IDEA

Problemy techniczne SQL Server

Aplikacje RMI Lab4

Zaawansowane aplikacje WWW - laboratorium

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Leszek Stasiak Zastosowanie technologii LINQ w

Programowanie Obiektowe GUI

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

Programowanie w Javie Lista nr 1. Wybieramy kategorię Java, a wśród Projektów Java Application i [NEXT]

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

JAVA I BAZY DANYCH. MATERIAŁY:

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

STRUMIENIE TEKSTOWE WEJŚCIOWE WPROWADZANIE DANYCH STRUMIENIE BAJTOWE, STRUMIENIE TEKSTOWE

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Bazy danych. Polecenia SQL

Struktura drzewa w MySQL. Michał Tyszczenko

Aplikacje w środowisku Java

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

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

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

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Metody dostępu do danych

Programowanie obiektowe zastosowanie języka Java SE

dziennik Instrukcja obsługi

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Programowanie w Javie

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

Programowanie wielowarstwowe i komponentowe

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Obiekty sieciowe - gniazda Komputery w sieci Internet komunikują się ze sobą poprzez:

Podejście obiektowe do relacyjnych baz danych Hibernate.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Projektowanie aplikacji internetowych laboratorium

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

WPROWADZENIE DO JĘZYKA JAVA

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Baza danych sql. 1. Wprowadzenie

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6

Języki i metody programowania Java. Wykład 2 (część 2)

Java EE: JSF + EJB + JPA

SQL Server Configuration Manager centrum dowodzenia

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List.

Katalog książek cz. 2

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

Ćwiczenie dotyczące platformy Java EE zostało przygotowane z myślą o środowisku NetBeans w wersji 7.3 (do pobrania z

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

W dowolnej przeglądarce internetowej należy wpisać poniższy adres:

Typ danych. Karta ogólne. Rozmiar pola Liczba całkowita długa. Autonumerowanie. Rozmiar pola 50. Tekst. Rozmiar pola 50. Tekst. Zerowa dł.

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Swing ćwiczenia 2 opis

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Transkrypt:

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

Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void polaczenie_z_baza()), wyświetlanie zawartości tabeli Person (metoda void wyswietl_osoby() ) 1. Uruchom program Baza_1 w środowisku NetBeans 6.7.1 załącznik do laboratorium. Należy uruchomić serwer bazy danych.w tym celu należy wykonać czynności wg pkt2 lub wykonując czynności pokazane poniżej w okienku Services.

2. W okienku Services należy otworzyć pozycję Databases. Następnie należy kliknąć prawym klawiszem myszy na rozerwany prostokąt bazy danych jdbc:derby://localhost:1527/travel. W menu podręcznym należy kliknąć na pozycję Connect. Po chwili prostokąt zostanie scalony, co symbolizuje połączenie z bazą danych.

Widok bazy danych travel

Schemat bazy danych travel Klucze główne Klucze obce

Klucze obce Klucze główne

Klucze obce Klucze główne

Wyświetlenie danych z tabeli PERSON

Zawartość tabeli PERSON

Wykonanie zapytania na tabeli PERSON wykonanie działań pomocniczych

Wynik działania programu

Zadanie 2 cd zadania 1- należy dodać: wyświetlanie zawartość tabeli TRIP (metoda void wyswietl_wycieczki()), wyświetlanie wycieczek każdej osoby (metoda void wyswietl_wycieczki_osob()) 1. Wykonaj kopię programu Baza_1 jako Baza_2 (patrz instrukcja do lab3 - zad.2, pkt. 1) 2. Zmień nazwę pliku baza_1 na baza_2 (patrz instrukcja do lab3 zad.2, pkt. 2 ) 3. Dodaj bibliotekę sterownika derbyclient.jar jak poniżej. (źródłowe położenie to np.. C:\Sun\AppServer\javadb\lib)

4. Zmodyfikuj zawartość metody void wyswietl_osoby() wg slajdu poniżej.

5. Dodaj metodę void wyswietl_wycieczki() - wyświetlanie zawartość tabeli TRIP

6. Dodaj metodę void wyswietl_wycieczki_osob() -- wyświetlanie wycieczek każdej osoby

7. Uruchom program

Wynik działania programu (z lewej strony: zawartość tabeli TRIP, z prawej strony zawartość złączonych tabel PERSON i TRIP)

Zadanie 3 cd zadania 2 dodawanie nowych osób do tabeli PERSON oraz dodawanie nowych wycieczek wybranej osoby do tabeli TRIP 1. Wykonaj kopię programu Baza_2 jako Baza_3 (patrz instrukcja do lab3 - zad.2, pkt. 1) 2. Zmień nazwę pliku baza_2 na baza_3 (patrz instrukcja do lab3 zad.2, pkt. 2 ) 3. Dodaj sterownik derbyclient.jar wg pkt3 z zad2. 4. Dodaj metodę void wstaw_osobe() 4.1. dodaj pomocniczą klasę WeWy do wprowadzania danych z klawiatury. Podczas edycji kodu zaimportuj brakująced biblioteki za pomocą Fix Imports (kliknij prawym klawiszem w oknie Edytora Javy i wybór opcji Fix Imports) class WeWy { static String westring(string menu) { InputStreamReader wejscie = new InputStreamReader(System.in); BufferedReader bufor = new BufferedReader(wejscie); try { System.out.print(menu); return bufor.readline(); catch (IOException e) { System.err.println("Blad IO String"); return "";

4.2. Dodaj klasę Person do wprowadzania danych do tabeli Person class Person { public String name, jobtitle; public void wstaw_tytul() { name = WeWy.weString("Podaj nazwisko: "); jobtitle = WeWy.weString("Podaj stanowisko pracy: ");

4.3. Dodaj metodę public String klucz_glowny(string sql1, String sql2) do klasy baza_3 w celu wyznaczenia wartości kolejnego klucza głównego. Metoda jest uniwersalna, ponieważ łańcuch sql2 + "."+sql1 tworzy nazwę pola klucza głównego w dowolnej tabeli (sql1 jest nazwą klucza głównego, a sql2 jest nazwą tabeli). Metoda zwraca wartość kolejnego klucza głównego, jakim można nadać nowej krotce lub null. public String klucz_glowny(string sql1, String sql2) { try { sql = " SELECT MAX(" + sql2 + "."+sql1 + ")+1 AS MAXID FROM " + sql2; krotki = polecenie.executequery(sql); krotki.next(); String pom = krotki.getstring("maxid"); return pom; catch (Exception e) { return null;

4.4. Dodaj metodę void wstaw_osobe() do klasy baza_3 w celu dodania nowej krotki do tabeli PERSON public void wstaw_osobe() throws SQLException { String id_osoby; Person t = new Person(); t.wstaw_tytul(); polaczenie.setautocommit(false); try { polecenie = polaczenie.createstatement(); if((id_osoby = klucz_glowny("personid", "TRAVEL.PERSON"))==null) return; sql = "INSERT INTO TRAVEL.PERSON (PERSONID,NAME,JOBTITLE,FREQUENTFLYER)" + " VALUES (" + id_osoby + ",'" + t.name + "','" + t.jobtitle + "'," + 0 + ")"; polecenie.addbatch(sql); polecenie.executebatch(); polaczenie.commit(); catch (BatchUpdateException e) { System.out.println("Wycofanie transakcji"); polaczenie.rollback();

4.5. Wynik działania nowej metody

5. Dodawanie nowej krotki do tablicy TRIP 5.1. Dodaj klasę Trip do wprowadzania danych do tabeli TRIP. Metoda void wstaw_date() otrzymuje liczbę dni metodą westring() i dodaje je do daty bieżącej metodą settime. Następnie wykorzystuje metodą SimpleDateFormat do nadania dacie formatu wymaganego w tabeli TRIP w bazie danych class Trip { public String depcity, destcity; String depdate; void wstaw_depcity() { depcity = WeWy.weString("Podaj miasto poczatkowe: "); void wstaw_destcity() { destcity = WeWy.weString("Podaj miasto koncowe: "); void wstaw_date() { Date pom1 = new Date(); String pom2 = WeWy.weString("Podaj date: "); // liczbe dni od dnia bieżącego pom1.settime(pom1.gettime() + Long.parseLong(pom2) * 24 * 60 * 60 * 1000); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); depdate = format.format(pom1.gettime()); public void wstaw_wycieczke() { wstaw_depcity(); wstaw_destcity(); wstaw_date();

5.2. Należy dodać metodę public String wyszukaj_typ_wycieczki() do klasy baza_3 w celu wyszukania klucza głównego typu wycieczki, którą należy dodać. public String wyszukaj_typ_wycieczki() { try { String typ = WeWy.weString("Podaj typ wycieczki: "); sql = "SELECT * FROM TRAVEL.TRIPTYPE WHERE TRAVEL.TRIPTYPE.NAME = '" + typ + "'"; krotki = polecenie.executequery(sql); if (krotki.next()) { return krotki.getstring("triptypeid"); catch (Exception e) { return null; 5.3. Należy dodać metodę public String wyszukaj_osobe() do klasy baza_3 w celu wyszukania klucza głównego osoby, której należy dodać nowa wycieczkę public String wyszukaj_osobe() { try { String name = WeWy.weString("Podaj nazwisko osoby: "); sql = "SELECT * FROM TRAVEL.PERSON WHERE TRAVEL.PERSON.NAME = '" + name + "'"; krotki = polecenie.executequery(sql); if (krotki.next()) { return krotki.getstring("personid"); catch (Exception e) { return null;

5.4. Należy dodać metodę public void wstaw_wycieczke() do klasy baza_3 w celu wstawienia nowej krotki do tabeli TRIP public void wstaw_wycieczke() throws SQLException { Trip k = new Trip(); k.wstaw_wycieczke(); String id_osoby, id_typ, id_trip; polaczenie.setautocommit(false); try { polecenie = polaczenie.createstatement(); if ((id_osoby = wyszukaj_osobe()) == null) { return; if ((id_typ = wyszukaj_typ_wycieczki()) == null) { return; if ((id_trip = klucz_glowny("tripid", "TRAVEL.TRIP")) == null) { return; sql = "INSERT INTO TRAVEL.TRIP (DEPDATE,DEPCITY,DESTCITY,TRIPTYPEID,PERSONID,TRIPID)" + " VALUES ('" + k.depdate + "','" + k.depcity + "','" + k.destcity + "'," + id_typ + "," + id_osoby + "," + id_trip + ")"; polecenie.executeupdate(sql); polecenie.executebatch(); polaczenie.commit(); catch (BatchUpdateException e) { System.out.println("Wycofanie transakcji"); polaczenie.rollback();

5.5. Metoda main

5.6. Wynik działania nowej metody

Zadanie 4 cd zadania 3 dodawanie przeszukiwania tabel PERSON dodawanie nowych krotek do wybranej tabeli z: HOTEL, FLIGHT, CARRENTAL lub TRIPTYPE dodanie dowolnej operacji na tabelach bazy danych travel 1. Wykonaj kopię programu Baza_3 jako Baza_4 (patrz instrukcja do lab3 - zad.2, pkt. 1) 2. Zmień nazwę pliku baza_3 na baza_4 (patrz instrukcja do lab3 zad.2, pkt. 2 ) 3. Dodaj sterownik derbyclient.jar wg pkt3 z zad2. 4. Dodaj metodę public void wyszukaj_wg_stanowiska() throws SQLException, która wykonuje zapytanie wyszukiwania Osob wg stanowiska w tablicy PERSON 5. Dodaj metodę, która wstawia nową krotkę do tabeli HOTEL, FLIGHT, CARRENTAL lub TRIPTYPE. 6. Wykonaj dowolną operację w bazie danych travel.

Zadanie 5 - dodatkowe 1. Wykonaj interfejs graficzny użytkownika do wybranych operacji na bazie danych wykonanych w zadaniach1-4. 2. Przykłady prostych programów z GUI do wyświetlania zawartości tabeli PERSON zamieszczono w projektach Baza_5 i Baza_6, dołączonych do laboratorium. Baza_5 Baza_6