Podstawowe wykorzystanie Hibernate

Podobne dokumenty
Podejście obiektowe do relacyjnych baz danych Hibernate.

Metody dostępu do danych

Aplikacje WWW - laboratorium

Laboratorium 1 Wprowadzenie do PHP

Wykład 5. SQL praca z tabelami 2

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Zaawansowane Techniki Bazodanowe

Projektowanie systemów baz danych

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

Hibernate mapowanie baz danych

Bazy danych i usługi sieciowe

Aplikacje WWW - laboratorium

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład.

Wdrożenie modułu płatności eservice. dla systemu Magento

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

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

Bazy Danych i Usługi Sieciowe

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Autor: Joanna Karwowska

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Programowanie wielowarstwowe i komponentowe

Wprowadzenie do Doctrine ORM

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

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

Paweł Cieśla. Dokumentacja projektu

Laboratorium 6 Tworzenie bloga w Zend Framework

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

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

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Język SQL, zajęcia nr 1

Bazy danych. dr Radosław Matusik. radmat

JSF 1.2. w wykonaniu NetBeans IDE 6.1. Jacek Laskowski

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

Instalacja MySQL.

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

Programowanie wielowarstwowe i komponentowe

NHibernate Hibernate dla platformy.net. Hibernate posiada także dużą społeczność, zatem nietrudno uzyskać jakieś wsparcie w przypadku problemów.

Zaawansowane aplikacje internetowe - laboratorium

akademia androida Składowanie danych część VI

Szablon główny (plik guestbook.php) będzie miał postać:

Wdrożenie do projektu

Wykład 05 Bazy danych

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Programowanie internetowe

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Wykład 4. SQL praca z tabelami 1

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

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

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Metody dostępu do danych

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Aplikacje www laboratorium

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

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

Programowanie w Ruby

Wykład 2 TINT. XHTML tabele i ramki. Zofia Kruczkiewicz

Wprowadzenie do Internetu Zajęcia 5

INSTALACJA I KONFIGURACJA SERWERA PHP.

Serwery aplikacji. dr Radosław Matusik. radmat

Baza danych do przechowywania użytkowników

Architektury Usług Internetowych. Laboratorium 1. Servlety

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

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

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Podstawy programowania (PHP/Java)

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 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ń.

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Dokumentacja SQL API 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wykład 8. SQL praca z tabelami 5

Tworzenie bazy danych w środowisku OpenOffice.org Base tabela, formularz, kwerenda, raport

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

Bazy danych. Polecenia SQL

Pracownia internetowa w szkole ZASTOSOWANIA

MVC w praktyce tworzymy system artykułów. cz. 2

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

Spis treści. Wstęp 5 Rozdział 1. Praca z AJAX-em 9. Rozdział 2. Współpraca ze skryptami PHP 55. Rozdział 3. Obsługa formularzy 81

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Załącznik 2 utworzenie projektu

Wykład 6. SQL praca z tabelami 3

Struktura drzewa w MySQL. Michał Tyszczenko

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

Java EE: JSF + EJB + JPA

Laboratorium nr 3 Podstawy Ruby on Rails

1 Wprowadzenie do J2EE

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

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

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Jak przenieść bazę danych na zdalny serwer?

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

Transkrypt:

Podstawowe wykorzystanie Hibernate Cel Wykonanie prostej aplikacji webowej przedstawiającą wykorzystanie biblioteki. Aplikacja sprawdza w zależności od wybranej metody dodaje, nową pozycje do bazy, zmienia jej zawartość bądź usuwa wiersz z bazy dancyh. Wymagania 1. Dodany serwer zgodnie z opisem w dokumencie Konfiguracja serwera.pdf 2. Zestaw bibliotek wymagany przez Hibernate ze strony projektu ( pobierz ) lub z dołączonego archiwum lib.zip 3. Sterownik do bazy danych sterownik dla MySQL-a mysql-connector-java-3.0.17-ga-bin.jar 4. Możliwość podłączenia się do bazy danych. Dodatki 1. Plik basic_hibernate.zip zawiera cały przedstawiony poniżej przykład

Nasz projekt będze odwzorowywał tabele z bazy danych utworzoną przy pomocy poniższego skryptu CREATE TABLE osoba ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, imie VARCHAR( 20 ) NOT NULL, nazwisko VARCHAR( 20 ) NOT NULL, wiek INT NOT NULL )

Tworzymy standardowy projekt typu Dynamic Web Project - będze on szkieletem do wykonania całej aplikacji.

Ustawiamy parametry projektu 1. "Project name" - basic_hibernate 2. "Target Runtime" - wybieramy z listy dostępny kontener webowy - wybieramy dodany wcześniej serwer Apache Tomcat. W tym miejscu kończymy prace z kreatorem dodawania projektu pozostałe ustawienia pozostawiamy domyślne.

Dodajemy folder classes

Dodajemy plik hibernate.cfg.xml

Zawartość pliku hibernate.cfg.xml 1- nazwa sterownika wykorzystywanego do nawiązania połączenia 2- adres URI do bazy danych 3- hasło i login wymagane o poprawnego zalogowania się na serwer MySQL 4- ścieżka do pliku w którym są informacje o z mapowanej tabeli z bazy. <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> (1) <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.driver</property> (2) <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property> (3) <property name="hibernate.connection.username">hibernate</property> (3) <property name="hibernate.connection.password">hibernate</property> <property name="hibernate.dialect">org.hibernate.dialect.mysqldialect</property> (4) <mapping resource="pl/basic/hibernate/osoba.hbm.xml" /> </session-factory> </hibernate-configuration>

Do katalogu./webcontent/web-inf/lib kopiujemy elementy podstawowe wymagane przez Hibernate:./WebContent/WEB-INF/lib/antlr-2.7.6.jar./WebContent/WEB-INF/lib/asm.jar./WebContent/WEB-INF/lib/asm-attrs.jar./WebContent/WEB-INF/lib/cglib-2.1.3.jar./WebContent/WEB-INF/lib/commons-collections-2.1.1.jar./WebContent/WEB-INF/lib/commons-logging-1.0.4.jar./WebContent/WEB-INF/lib/dom4j-1.6.1.jar./WebContent/WEB-INF/lib/hibernate3.jar./WebContent/WEB-INF/lib/jta.jar./WebContent/WEB-INF/lib/log4j-1.2.11.jar Sterownik wykożystywany przy nawiązywaniu połączenia./webcontent/web-inf/lib/mysql-connector-java-3.0.17-ga-bin.jar

Dodawanie klasy odwzorowującej tabele z bazy danych

Dodajemy do klasy pola odpowiadające polami z tabeli w bazie danych

Dodawania metod typu set i get Do poprawnego użytkowania klasy są wymagane metody ustawiające i pobierające wartości pól. Można do tego użyć funkcje oferowane przez środowisko Eclipse.

Dodawanie pliku Osoba.hmb.ml

Zawartość pliku Osoba.hmb.ml 1 łączenie tabeli z bazy danych z klasą odpowiedzialną za jej odwzorowanie jako obiekt 2 określanie id (klucza głównego) dla tabeli 3- określenie w jaki sposób będzie zmieniana wartość tego pola pole typu autoincrement więc będze o ot dbaćsama baza danych (native) 4 określenie odwzorowania kolumny z tabeli na pole w klasie poprzez wskazanie konkretnych nazw 5 prak atrybutu column informuje ze pole w tabeli ma taką samą nazwę jak pole w klasie <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> (1) <class name="pl.basic.hibernate.osoba" table="osoba"> (2) <id name="id" column="id"> (3) <generator class="native" /> </id> (4) <property name="nazwisko" column="nazwisko" /> (4) <property name="imie" column="imie" /> (5) <property name="wiek" /> </class> </hibernate-mapping>

Tworzenie strony odpowiedzialnej za obsługę bazy

Zawartość pliku index.jsp Do pobrania wszystkich elementów tablicy wystarczy tak postać zapytania SQL FROM Osoba o. <%@ page language="java" contenttype="text/html; charset=iso-8859-2" pageencoding="iso-8859-2"%> <%@page import="org.hibernate.sessionfactory"%> <%@page import="org.hibernate.session"%> <%@page import="org.hibernate.transaction"%> <%@page import="org.hibernate.cfg.configuration"%> <%@page import="org.hibernate.query"%> <%@page import="java.util.list"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> <title>hibernate</title> </head> <body> <% // tworzenie sessi i połączenia SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session s = sf.opensession(); Transaction tr = s.begintransaction(); // pobieranie zawartości tabeli Query query = s.createquery("from Osoba o"); List<Osoba> table = query.list(); // zamykanie połączenia s.close(); %> </body> </html>

Metody wykorzystania obiektów zmapowanych w Hibernate // dodawanie nowej osoby Osoba osoba = new Osoba(); osoba.setimie("stefan"); osoba.setnazwisko("burczymucha"); osoba.setwiek(22); s.saveorupdate(osoba); // usuwanie osoby Integer id = Integer.parseInt(request.getParameter("id")); Object osoba = s.load(osoba.class, id); s.delete(osoba); // usuwanie osoby Integer id = Integer.parseInt(request.getParameter("id")); Osoba osoba = (Osoba)s.load(Osoba.class, id); osoba.setnazwisko(osoba.getnazwisko() + "+"); s.saveorupdate(osoba);

// pobieranie zawartości tabeli Query query = s.createquery("from Osoba o"); List<Osoba> table = query.list(); // Wyświetlanie pobranej zawartości <% for (int i = 0; i < table.size(); i++) { %> <%=table.get(i).getid()%> <%=table.get(i).getnazwisko()%> <%=table.get(i).getimie()%> <%=table.get(i).getwiek()%> <a href="index.jsp?mode=del&id=<%= table.get(i).getid() %>">usuń</a> <a href="index.jsp?mode=edt&id=<%= table.get(i).getid() %>">zmień</a> <br /> <% } %>

Uruchamianie projektu

Wynik działania aplikacji Dodaj dodaje nową pozycje do bazy Usuń usuwa daną pozycje z bazy Zmień pobiera wybrany element, modyfikuje go (dodaje znak + do końca nazwiska osoby) i ponownie zapisuje zmiany do bazy.