CREATE {DATABASE SCHEMA} [IF NOT EXISTS] db_name [create_specification]

Hasonló dokumentumok
Hello, EJB! Egy egyszerű példa

Stateless Session Bean

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Adatbázisok webalkalmazásokban

JNDI - alapok. Java Naming and Directory Interface

Enterprise Java Beans. EJB - Általános bevezető

Bevezetés a Seam keretrendszer használatába

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

OOP: Java 4.Gy: Java osztályok

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

OOP: Java 8.Gy: Abstract osztályok, interfészek

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

ANDROID ALKALMAZÁSFEJLESZTÉS

A Java Persistence API PersistenceAPI / 3

Vizuális programozás gyakorlat

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

OOP: Java 7.Gy: Öröklődés, referenciák

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Adatbázis-kezelés ODBC driverrel

Segédanyag: Java alkalmazások gyakorlat

JEE tutorial. Zsíros Levente, 2012

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Access adatbázis elérése OLE DB-n keresztül

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

Bánsághi Anna

Programozási technológia

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

Segédanyag: Java alkalmazások gyakorlat

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Swing GUI készítése NetBeans IDE segítségével

libgdx alapok, első alkalmazás

Abstract osztályok és interface-ek. 7-dik gyakorlat

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

EJB - Perzisztencia. EntityManager

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Programozási nyelvek Java

C#, OOP. Osztályok tervezése C#-ban

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

Java programozási nyelv 6. rész Java a gyakorlatban

BME MOGI Gépészeti informatika 8.

Tartalom. Az EJB 2.1 problémái Az EJB 3 megoldásai

OOP: Java 8.Gy: Gyakorlás

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Alap számológép alkalmazás

JPA támogatás Eclipse-ben

Adatkezelés. 11. előadás (Entity Beans)

Elemi alkalmazások fejlesztése IV.

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész

8. rész: Implementáció JDeveloperben

Internetkonfigurációs követelmények. A számítógép konfigurálása. Beállítások Windows XP alatt

Kézikönyv ABAS-TOOLS használata

Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva

Lottery. WebLogic JMS, Jersey, JMX, JNDI. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 8. Bedők Dávid v0.

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

C#---Access adatbáziskezelési gyakorlat

Egyszerű alkalmazás fejlesztése JDeveloperben

Osztályok. 4. gyakorlat

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Szervlet-JSP együttműködés

Programozási nyelvek Java

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

EFER, TELEPÍTÉSI UTASÍTÁS EFER PAYMENT GATEWAY

JavaServer Pages (JSP) (folytatás)

Kliens oldali SQL-API

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

Az SQL*Plus használata

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

Java és web programozás

Szoftvertechnolo gia gyakorlat

MDAC - Microsoft Data Access Components

ANDROID ALKALMAZÁSFEJLESZTÉS

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

INFORMATIKAI ALAPISMERETEK

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Java Remote Method Invocation API

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

INFORMATIKAI ALAPISMERETEK

7. K: JAVA alapok Konzultáció

Java és web programozás

Átírás:

Egyszerű JPA projekt A következőekben egy JPA entitás beant és műveletek végrehajtására stateless session beant hozunk létre. A JPA példa teszteléséhez egy távoli klienst hozunk létre, az egyszerűség kedvéért ugyanabban a projektben. Adatbázis létrehozása Mindenekelőtt létre kell hozni egy adatbázist és egy táblát. MySQL adatbázis kezelőben új adatbázist a CREATE DATABASE utasítással hozhatunk létre, a következőképpen: CREATE {DATABASE SCHEMA [IF NOT EXISTS] db_name [create_specification] create_specification: [DEFAULT] CHARACTER SET [=] charset_name [DEFAULT] COLLATE [=] collation_name A CREATE DATABASE utasítás létrehozza az adott nevű adatbázist. Az IF NOT EXIST opcionális része az utasításnak, megakadályozza hiba keletkezését abban az esetben, ha már létezne az adott nevű adatbázis. Hozzunk létre egy jpaexampledb adatbázist a CREATE DATABASE utasítással a következőképpen: CREATE DATABASE jpaexampledb CHARACTER SET utf8 ; A MySQL szerver több karakterkészletet is támogat, ezeket a SHOW CHARACTER SET utasítással kérdezhetjük le. A karakterkészletbe tartozó karakter egybevetéseket a SHOW COLLATION utasítással lehet lekérdezni, pl: SHOW COLLATION WHERE charset= utf8 ; A meglévő adatbázisokat a SHOW DATABASES utasítással lehet lekérdezni. SHOW DATABASES;

Az adatbázis használatához a USE utasítás használható: USE jpaexampledb; Tábla létrehozására a CREATE TABLE utasítást használhatjuk, általános formája: CREATE TABLE [IF NOT EXISTS] table_name( column_list ) engine=table_type Hozzunk létre egy book táblát, könyvek tárolására: CREATE TABLE IF NOT EXISTS book ( isbn int(13) NOT NULL, title varchar(64) NOT NULL, author varchar(64), publisher varchar(64), releaseyear year(4), format varchar(32), PRIMARY KEY (isbn) ); Az elérhető táblákat a SHOW TABLES utasítással lehet lekérdezni. Egy tábla mezőit a következő utasítással kérdezhetjük le: DESCRIBE book;

JPA projekt létrehozása File New EJB Project A megjelenő párbeszédablakban adjuk meg a projekt nevét, ez legyen JPAExample, majd kattintsunk a Finish gombra.

JPA entitás létrehozása Hozzunk létre egy osztályt Book névvel, org.ait.entities csomagnévvel. package org.ait.entities; import java.io.serializable; import java.sql.date; import javax.persistence.entity; import javax.persistence.id; @Entity(name = "book") public class Book implements Serializable { @Id private int isbn; private String title; private String author; private String publisher; private Date releaseyear; private String format; public Book() { public int getisbn() { return isbn; public void setisbn(int isbn) { this.isbn = isbn; public String gettitle() { return title; public void settitle(string title) { this.title = title; public String getauthor() { return author; public void setauthor(string author) { this.author = author; public String getpublisher() { return publisher; public void setpublisher(string publisher) { this.publisher = publisher;

public Date getreleaseyear() { return releaseyear; public void setreleaseyear(date releaseyear) { this.releaseyear = releaseyear; public String getformat() { return format; public void setformat(string format) { this.format = format; @Override public String tostring() { return "Book [isbn=" + isbn + ", title=" + title + ", author=" + author + ", publisher=" + publisher + ", releaseyeare=" + releaseyear + ", format=" + format + "]";

Session Bean létrehozása Új Session Bean létrehozását a következő menüpontban lehet megtenni: File New Other itt a következőket kell választani: EJB Session Bean

A csomag név legyen org.ait.businesslogic, az osztály neve pedig BookBean. Az állapotok közül válasszuk a Stateless-t. Az üzleti interfészek résznél jelöljük be a Remote interfész létrehozását. Majd kattintsunk a Next gombra, majd a Finish-re.

BookBeanRemote interfész törzse legyen a következő: package org.ait.businesslogic; import java.util.list; import javax.ejb.remote; import org.ait.entities.book; @Remote public interface BookBeanRemote { public void savebook(book book); public Book findbook(book book); public List<Book> retrieveallbooks(); A BookBean törzse legyen a következő: package org.ait.businesslogic; import java.util.list; import javax.ejb.localbean; import javax.ejb.stateless; import javax.persistence.entitymanager; import javax.persistence.persistencecontext; import javax.persistence.query; import org.ait.entities.book; @Stateless public class BookBean implements BookBeanRemote { @PersistenceContext(unitName = "jpaexampledb") private EntityManager entitymanager; public BookBean() { @Override public void savebook(book book) { entitymanager.persist(book); @Override public Book findbook(book book) { Book b = entitymanager.find(book.class, book.getisbn()); return b; @Override public List<Book> retrieveallbooks() { String q = "SELECT b from" + Book.class.getName() + " p"; Query query = entitymanager.createquery(q); List<Book> books = query.getresultlist(); return books;

Honnan tudja az EntityManager API hogy melyik adatbázist használja? A persistence.xml fájlban kell konfigurálni az EntityManager-t. A persistenve.xml fájlnak a META-INF könyvtárban kell lennie. Definiálnia kell egy persistence-unitot egy egyedi névvel, amit az EntityManager használhat. Kattintsunk jobb gombbal a META-INF könyvtárra -> New -> Other -> XML -> XML file, fájl névnek adjuk meg a persistence.xml-t és írjuk bele a következőt: <?xml version="1.0" encoding="utf-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="jpaexampledb"> <jta-data-source>java:/mysql</jta-data-source> <properties> <property name="showsql" value="true"/> <property name="hibernate.dialect" value="org.hibernate.dialect.mysqldialect" /> </properties> </persistence-unit> </persistence> MySQL adatforrás konfigurálása JBoss AS 7-ben MySQL connectort a http://dev.mysql.com/downloads/connector/j/ címről lehet letölteni. A JBoss AS 7-ben létre kell hozni egy új modult, melyik a tartalmazza a MySQL Connector J jart. A JBoss AS 7 root könyvtárában létre kell hozni a következő könyvtár hierarchiát: modules/com/mysql/main. Majd a MySQL Connector J jart másoljuk a main könyvtárba. Ezután hozzunk létre egy module.xml fájlt a következő tartalommal: <?xml version="1.0" encoding="utf-8"?> <module xmlns="urn:jboss:module:1.0" name="com.mysql"> <resources> <resource-root path="mysql-connector-java-5.1.26-bin.jar"/> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>

Adatforrás hozzáadása a driverhez Adjunk hozzá egy <dagasources> elemet a standalone.xml-hez, amely a JBossAS_HOME/standalone/configuration könyvtárban található. <datasource jndi-name="java:/mysql" pool-name="mysql" enabled="true" use-javacontext="true"> <connection-url>jdbc:mysql://localhost:3306/test</connection-url> <driver>mysqldriver</driver> <security> <user-name>mysql-username</user-name> <password>mysql-password</password> </security> </datasource> Teszt kliens létrehozása Hozzunk létre egy osztályt amellyel tesztelhetjük a létrehozott beant. Ehhez először hozzunk létre egy osztályt, amely inicializálja beant. Válasszuk a New menüben a Class menüpontot, majd a megjelenő ablakban adjuk meg az osztály nevét ez legyen JNDILookupClass, csomagnevét, amely legyen org.ait.clientutility. package org.ait.clientutility; import java.util.properties; import javax.naming.context; import javax.naming.initialcontext; import javax.naming.namingexception; public class JNDILookupClass { private static Context initialcontext; private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming"; public static Context getinitialcontext() throws NamingException { if(initialcontext == null) { Properties properties = new Properties(); properties.put(context.url_pkg_prefixes, PKG_INTERFACES); initialcontext = new InitialContext(properties); return initialcontext; Ezután hozzuk létre a klienst. Válasszuk a New menüben a Class menüpontot, majd a megjelenő ablakban adjuk, meg az osztály nevét ez legyen JPAExampleClient, csomagnevét, amely legyen org.ait.client és jelöljük be a main metódus vázának a legenerálását.

Az JPAExampleClient tartalma legyen a következő: package org.ait.client; import java.sql.date; import java.util.list; import javax.naming.context; import javax.naming.namingexception; import org.ait.businesslogic.bookbean; import org.ait.businesslogic.bookbeanremote; import org.ait.clientutility.jndilookupclass; import org.ait.entities.book;

public class JPAExampleClient { public static void main(string[] args) { BookBeanRemote bean = dolookup(); Book b1 = new Book(); b1.setisbn(new java.lang.long("9789631424607")); b1.settitle("a Pendragon legenda"); b1.setauthor("szerb Antal"); b1.setpublisher("magvető Könyvkiadó"); b1.setreleaseyear(new Date(2007, 1, 1)); b1.setformat("papír/puha kötés"); Book b2 = new Book(); b2.setisbn(new java.lang.long("9789631194074")); b2.settitle("a kis herceg"); b2.setauthor("antoinde de Saint-Exupéry"); b2.setpublisher("móra Kiadó"); b2.setreleaseyear(new Date(2013, 1, 1)); b2.setformat("kemény kötés"); bean.savebook(b1); bean.savebook(b2); System.out.println("List of books:"); List<Book> books = bean.retrieveallbooks(); for(book book : books) { System.out.println(book); private static BookBeanRemote dolookup() { Context context = null; BookBeanRemote bean = null; try { context = JNDILookupClass.getInitialContext(); String lookupname = getlookupname(); bean = (BookBeanRemote) context.lookup(lookupname); catch (NamingException e) { e.printstacktrace(); return bean; private static String getlookupname() { String appname = ""; String modulename = "JPAExample"; String distinctname = ""; String beanname = BookBean.class.getName(); final String interfacename = BookBeanRemote.class.getName();

String name = "ejb:" + appname + "/" + modulename + "/" + distinctname + "/" + beanname + "!" + interfacename; return name; A host paraméterinek megadásához hozzunk létre egy jboss-ejb-client.properties fájlt, a következő tartalommal: remote.connectionprovider.create.options.org.xnio.options.ssl_enabled=false remote.connections=default remote.connection.default.host=localhost remote.connection.default.port = 4447 remote.connection.default.connect.options.org.xnio.options.sasl_policy_noanonymous =false Ha még nincs a classpath-ban a jboss-client.jar, akkor adjuk hozzá, majd futtathatjuk a klienst.