A JDeveloper View menüpontjában válasszuk ki a Database Navigator pontot.
Ezután hívjuk meg a New Connection funkciót egy új adatbázis kapcsolat létrehozatalára.
Állítsuk be a kapcsolat főbb paramétereit.
Connection name : kl1 (kapcsolat azonosító)
Connection type: Oracle JDBC (kapcsolat típusa)
Username: proba (adatbázis felhasználó neve)
Password: proba (ejlszó)
Driver: Thin (jdbc megható tipusa)
Hostname: localhost (szerver gép)
JDBC port: 1521 (a figyelő portszáma)
SID: XE
Egy új Java osztályt kell létrehozni., mely illeszkedik az EJB körrnyezetre. A generálás lépései:
A New funkció aktivizálás a minta alkalmazáson belül
Az új elem típusa: Business Tier - EJBMode - Entiites from tables. A megjelenő paraméter beállító lapokon az alábbi információkat kell megadni:
Persistence unit: a perzisztens adatkezelő rész azonosítója
Adatkapcsolat típusa (pl. online vagy offline)
adatbázis kapcsolati objektum
adattáblák kijelölése, melyekhez perzisztens osztályok jönnek majd létre
A generálás eredményeként létrejön a perzisztenciát támogató osztályok annotált leírása.
package jpa_kl;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
@Entity
@NamedQueries({
@NamedQuery(name = "Termek.findAll", query = "select o from Termek o")
})
public class Termek implements Serializable {
private String megyseg;
@Id
@Column(nullable = false)
private Long tkod;
private String tnev;
public Termek() {
}
public Termek(String megyseg, Long tkod, String tnev) {
this.megyseg = megyseg;
this.tkod = tkod;
this.tnev = tnev;
}
public String getMegyseg() {
return megyseg;
}
public void setMegyseg(String megyseg) {
this.megyseg = megyseg;
}
public Long getTkod() {
return tkod;
}
public void setTkod(Long tkod) {
this.tkod = tkod;
}
public String getTnev() {
return tnev;
}
public void setTnev(String tnev) {
this.tnev = tnev;
}
}<?xml version="1.0" encoding="windows-1250" ?> <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="JPA_KL"> <provider> org.eclipse.persistence.jpa.PersistenceProvider </provider> <jta-data-source> java:/app/jdbc/jdbc/kl1DS </jta-data-source> <class> JPA_KL.Termek </class> <properties> <property name="eclipselink.target-server" value="WebLogic_10"/> <property name="javax.persistence.jtaDataSource" value="java:/app/jdbc/jdbc/kl1DS"/> </properties> </persistence-unit> </persistence>
A projekt META-INF részében a persistence.xml állományra álljunk rá, s aktivizáljuk a New Java Service Facade funckiót a jobbegérgombon keresztül. A paraméterbeállító ablakokban az alábbi értékekeket jelöljük be:
JPA
generate main()
JDBC connection
Table generation: none
A generált mintapélda példányosítja az entitás kezelő osztályt is. A kapcsolódó kódlista:
package jpa_kl;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
public class JavaServiceFacade {
private EntityManagerFactory emf =
Persistence.createEntityManagerFactory("public JavaServiceFacade() {
}
public static void main(String [] args) {
final JavaServiceFacade javaServiceFacade = new JavaServiceFacade();
// TODO: Call methods on javaServiceFacade here...
}
private EntityManager getEntityManager() {
return emf.createEntityManager();
}
public Object mergeEntity(Object entity) {
final EntityManager em = getEntityManager();
try {
final EntityTransaction et = em.getTransaction();
try {
et.begin();
em.merge(entity);
et.commit();
} finally {
if (et != null && et.isActive()) {
entity = null;
et.rollback();
}
}
} finally {
if (em != null && em.isOpen()) {
em.close();
}
}
return entity;
}
public Object persistEntity(Object entity) {
final EntityManager em = getEntityManager();
try {
final EntityTransaction et = em.getTransaction();
try {
et.begin();
em.persist(entity);
et.commit();
} finally {
if (et != null && et.isActive()) {
entity = null;
et.rollback();
}
}
} finally {
if (em != null && em.isOpen()) {
em.close();
}
}
return entity;
}
/** <code>select o from Termek o</code> */
public List<Termek> queryTermekFindAll() {
return
getEntityManager().createNamedQuery("Termek.findAll").getResultList();
}
/** <code>select o from Termek o</code> */
public List<Termek> queryTermekFindAllByRange(int firstResult,
int maxResults) {
Query query = getEntityManager().createNamedQuery("Termek.findAll");
if (firstResult > 0) {
query = query.setFirstResult(firstResult);
}
if (maxResults > 0) {
query = query.setMaxResults(maxResults);
}
return query.getResultList();
}
public void removeTermek(Termek termek) {
final EntityManager em = getEntityManager();
try {
final EntityTransaction et = em.getTransaction();
try {
et.begin();
termek = em.find(Termek.class, termek.getTkod());
em.remove(termek);
et.commit();
} finally {
if (et != null && et.isActive()) {
et.rollback();
}
}
} finally {
if (em != null && em.isOpen()) {
em.close();
}
}
}
}
A persistence.xml konfigurációs állomány tartalma is megváltozott. Az új leírás:
<?xml version="1.0" encoding="windows-1250" ?> <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://version="1.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="JPA_KL"> <provider> org.eclipse.persistence.jpa.PersistenceProvider </provider> <jta-data-source> java:/app/jdbc/jdbc/kl1DS </jta-data-source> <class> jpa_kl.Termek </class> <properties> <property name="eclipselink.target-server" value="WebLogic_10"/> <property name="javax.persistence.jtaDataSource" value="java:/app/jdbc/jdbc/kl1DS"/> </properties> </persistence-unit> <persistence-unit name="JPA_KL-1" transaction-type="RESOURCE_LOCAL"> <provider> org.eclipse.persistence.jpa.PersistenceProvider </provider> <class> jpa_kl.Termek </class> <properties> <property name="eclipselink.jdbc.driver" value="oracle.jdbc.OracleDriver"/> <property name="eclipselink.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:XE"/> <property name="eclipselink.jdbc.user" value="proba"/> <property name="eclipselink.jdbc.password" value="6811C4C05D5E63CC5650D51F031506B0"/> <property name="eclipselink.logging.level" value="FINER"/> <property name="eclipselink.target-server" value="WebLogic_10"/> </properties> </persistence-unit> </persistence>
Ehhez a main() metódust módosítjuk, melynek új alakja:
public static void main(String [] args) {
final JavaServiceFacade javaServiceFacade = new JavaServiceFacade();
List <Termek> ll;
ll = javaServiceFacade.queryTermekFindAll();
for (int i=0; i<ll.size(); i++) {
Termek tt = ll.get(i);
System.out.println(tt.getTnev());
}
}public static void main(String [] args) {
final JavaServiceFacade javaServiceFacade = new JavaServiceFacade();
Termek tt = new Termek("db",45l,"babszem");
javaServiceFacade.persistEntity(tt);
}public void lekerdo (String betu){
final EntityManager em = getEntityManager();
String parancs = "SELECT to_char(count(*)) FROM termek ";
List ll = (List) em.createNativeQuery(parancs).getSingleResult();
System.out.println("db="+ ll.get(0));
}public void lekerdo (String me){
final EntityManager em = getEntityManager();
String parancs =
"SELECT tnev FROM termek WHERE ltrim(rtrim(megyseg)) = ?”
List ll =
(List) em.createNativeQuery(parancs).
setParameter(1,me.trim());
for (int i=0; i<ll.size(); i++) {
System.out.println(ll.get(i));
}
}
@Entity
@Table(name="vevo")
public class Vevo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="ugyfelszam")
private int ugyfelszam;
private String nev;
private String e_mail;
private int tel;
@Column(name="i")
private int irsz;
@Column(name="v")
private String varos;
@Column(name="u")
private String utca;
private int hsz;
public Vevo() {
super();
}
public int getUgyfelszam() {
return ugyfelszam;
}
public void setUgyfelszam(int ugyfelszam) {
this.ugyfelszam = ugyfelszam;
}
public String getNev() {
return nev;
}
public void setNev(String nev) {
this.nev = nev;
}
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
public int getTel() {
return tel;
}
public void setTel(int tel) {
this.tel = tel;
}
public int getIrsz() {
return irsz;
}
public void setIrsz(int irsz) {
this.irsz = irsz;
}
public String getVaros() {
return varos;
}
public void setVaros(String varos) {
this.varos = varos;
}
public String getUtca() {
return utca;
}
public void setUtca(String utca) {
this.utca = utca;
}
public int getHsz() {
return hsz;
}
public void setHsz(int hsz) {
this.hsz = hsz;
}
@Override
public String toString() {
return "Vevo [ugyfelszam=" + ugyfelszam + ", nev=" + nev + ",
e_mail="+ e_mail + ", tel=" + tel + ", irsz=" + irsz +
", varos="+ varos + ", utca=" + utca + ", hsz=" + hsz
+ "]";
}
}@Entity
@Table(name="szolgaltato")
public class Szolgaltato implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="cegazonosito")
private String cegazonosito;
private String nev;
@Column(name="i")
private int irsz;
@Column(name="v")
private String varos;
@Column(name="u")
private String utca;
private int hsz;
public Szolgaltato() {
super();
}
public String getCegazonosito() {
return cegazonosito;
}
public void setCegazonosito(String cegazonosito) {
this.cegazonosito = cegazonosito;
}
public String getNev() {
return nev;
}
public void setNev(String nev) {
this.nev = nev;
}
public int getIrsz() {
return irsz;
}
public void setIrsz(int irsz) {
this.irsz = irsz;
}
public String getVaros() {
return varos;
}
public void setVaros(String varos) {
this.varos = varos;
}
public String getUtca() {
return utca;
}
public void setUtca(String utca) {
this.utca = utca;
}
public int getHsz() {
return hsz;
}
public void setHsz(int hsz) {
this.hsz = hsz;
}
public Collection<Tel> getTels() {
return tels;
}
public void setTels(List<Tel> tels) {
this.tels = tels;
}
@Override
public String toString() {
return "Szolgaltato [cegazonosito=" + cegazonosito + ", nev=" +
nev+ ", irsz=" + irsz + ", varos=" + varos + ",
utca=" + utca+ ", hsz=" + hsz + "]";
}
}@Entity
@Table(name="mobiltelefon")
public class Mobiltelefon implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="cikkszam")
private String cikkszam;
private int ar;
private String leiras;
private String tipusa;
public Mobiltelefon() {
super();
}
public String getCikkszam() {
return this.cikkszam;
}
public void setCikkszam(String cikkszam) {
this.cikkszam = cikkszam;
}
public int getAr() {
return this.ar;
}
public void setAr(int ar) {
this.ar = ar;
}
public String getLeiras() {
return this.leiras;
}
public void setLeiras(String leiras) {
this.leiras = leiras;
}
public String getTipusa() {
return this.tipusa;
}
public void setTipusa(String tipusa) {
this.tipusa = tipusa;
}
@Override
public String toString() {
return "Mobiltelefon [cikkszam=" + cikkszam + ", ar=" + ar
+ ", leiras=" + leiras + ", tipusa=" + tipusa
+ ", szolgaltatok=" + szolgaltatok + "]";
}
}@Entity
@Table(name="tel")
public class Tel implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@Column(name="id")
private int id;
private int telszam;
@ManyToOne
@JoinColumn(name="szolgaltato",
referencedColumnName="cegazonosito")
private Szolgaltato szolgaltato;
public Tel() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getTelszam() {
return telszam;
}
public void setTelszam(int telszam) {
this.telszam = telszam;
}
public Szolgaltato getSzolgaltato() {
return szolgaltato;
}
public void setSzolgaltato(Szolgaltato szolgaltato) {
this.szolgaltato = szolgaltato;
}
@Override
public String toString() {
return "Tel [id=" + id + ", telszam=" + telszam + ", szolgaltato="
+ szolgaltato + "]";
}
“Szolgaltato osztály” osztály módosítása a kétirányú kapcsolat miatt:
@OneToMany(mappedBy="szolgaltato", fetch=FetchType.EAGER)
private Collection<Tel>tels;
…
public Szolgaltato() {
super();
tels = new ArrayList<Tel>();
}
…
public Collection<Tel> getTels() {
return tels;
}
public void setTels(List<Tel> tels) {
this.tels = tels;
}
public void addTel(Tel t) {
if (!this.tels.contains(t)) {
this.tels.add(t);
if (t.getSzolgaltato() != null) {
t.getSzolgaltato().getTels().remove(t);
}
t.setSzolgaltato(this);
}
}Szolgáltató osztály:
@Entity
@Table(name="szolgaltato")
public class Szolgaltato implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="cegazonosito")
private String cegazonosito;
private String nev;
@Column(name="i")
private int irsz;
@Column(name="v")
private String varos;
@Column(name="u")
private String utca;
private int hsz;
@OneToMany(mappedBy="szolgaltato", fetch=FetchType.EAGER)
private Collection<Tel>tels;
@ManyToMany
@JoinTable(
name="arusit",
joinColumns=@JoinColumn(
name="szolgaltato",
referencedColumnName="cegazonosito"),
inverseJoinColumns=@JoinColumn(
name="mobiltelefon",
referencedColumnName="cikkszam")
)
private Collection<Mobiltelefon> mobiltelefonok;
public Szolgaltato() {
super();
tels = new ArrayList<Tel>();
mobiltelefonok = new ArrayList<Mobiltelefon>();
}
public String getCegazonosito() {
return cegazonosito;
}
public void setCegazonosito(String cegazonosito) {
this.cegazonosito = cegazonosito;
}
public String getNev() {
return nev;
}
public void setNev(String nev) {
this.nev = nev;
}
public int getIrsz() {
return irsz;
}
public void setIrsz(int irsz) {
this.irsz = irsz;
}
public String getVaros() {
return varos;
}
public void setVaros(String varos) {
this.varos = varos;
}
public String getUtca() {
return utca;
}
public void setUtca(String utca) {
this.utca = utca;
}
public int getHsz() {
return hsz;
}
public void setHsz(int hsz) {
this.hsz = hsz;
}
public Collection<Tel> getTels() {
return tels;
}
public void setTels(List<Tel> tels) {
this.tels = tels;
}
public Collection<Mobiltelefon> getMobiltelefonok() {
return mobiltelefonok;
}
public void setMobiltelefonok(Collection<Mobiltelefon> mobiltelefonok) {
this.mobiltelefonok = mobiltelefonok;
}
public void addTel(Tel t) {
if (!this.tels.contains(t)) {
this.tels.add(t);
if (t.getSzolgaltato() != null) {
t.getSzolgaltato().getTels().remove(t);
}
t.setSzolgaltato(this);
}
}
public void addMobiltelefon(Mobiltelefon m) {
if (!this.mobiltelefonok.contains(m)) {
this.mobiltelefonok.add(m);
}
if (!m.getSzolgaltatok().contains(this)) {
m.addSzolgaltato(this);
}
}
@Override
public String toString() {
+ return "Szolgaltato [cegazonosito=" + cegazonosito + ", nev=" +
nev+ ", irsz=" + irsz + ", varos=" + varos + ",
utca=" + utca+ ", hsz=" + hsz + "]";
}
}
Mobiltelefon osztály:
@Entity
@Table(name="mobiltelefon")
public class Mobiltelefon implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="cikkszam")
private String cikkszam;
private int ar;
private String leiras;
private String tipusa;
@ManyToMany(mappedBy="mobiltelefonok", fetch=FetchType.EAGER)
private Collection<Szolgaltato> szolgaltatok;
public Mobiltelefon() {
super();
szolgaltatok = new ArrayList<Szolgaltato>();
}
public String getCikkszam() {
return this.cikkszam;
}
public void setCikkszam(String cikkszam) {
this.cikkszam = cikkszam;
}
public int getAr() {
return this.ar;
}
public void setAr(int ar) {
this.ar = ar;
}
public String getLeiras() {
return this.leiras;
}
public void setLeiras(String leiras) {
this.leiras = leiras;
}
public String getTipusa() {
return this.tipusa;
}
public void setTipusa(String tipusa) {
this.tipusa = tipusa;
}
public Collection<Szolgaltato> getSzolgaltatok() {
return szolgaltatok;
}
public void setSzolgaltatok(Collection<Szolgaltato> szolgaltatok) {
this.szolgaltatok = szolgaltatok;
}
public void addSzolgaltato(Szolgaltato sz) {
if (!this.szolgaltatok.contains(sz)) {
this.szolgaltatok.add(sz);
}
if (!sz.getMobiltelefonok().contains(this)) {
sz.getMobiltelefonok().add(this);
}
}
@Override
public String toString() {
return "Mobiltelefon [cikkszam=" + cikkszam + ", ar=" + ar
+ ", leiras=" + leiras + ", tipusa=" + tipusa
+ ", szolgaltatok=" + szolgaltatok + "]";
}
}Vevő osztály:
@Entity
@Table(name="vevo")
public class Vevo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="ugyfelszam")
private int ugyfelszam;
private String nev;
private String e_mail;
private int tel;
@Column(name="i")
private int irsz;
@Column(name="v")
private String varos;
@Column(name="u")
private String utca;
private int hsz;
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(
name="elegedettseg",
joinColumns=@JoinColumn(
name="vevo",
referencedColumnName="ugyfelszam"),
inverseJoinColumns=@JoinColumn(
name="szolgaltato",
referencedColumnName="cegazonosito")
)
private Collection<Szolgaltato>szolgaltatok;
public Vevo() {
super();
this.szolgaltatok = new ArrayList<Szolgaltato>();
}
public int getUgyfelszam() {
return ugyfelszam;
}
public void setUgyfelszam(int ugyfelszam) {
this.ugyfelszam = ugyfelszam;
}
public String getNev() {
return nev;
}
public void setNev(String nev) {
this.nev = nev;
}
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
public int getTel() {
return tel;
}
public void setTel(int tel) {
this.tel = tel;
}
public int getIrsz() {
return irsz;
}
public void setIrsz(int irsz) {
this.irsz = irsz;
}
public String getVaros() {
return varos;
}
public void setVaros(String varos) {
this.varos = varos;
}
public String getUtca() {
return utca;
}
public void setUtca(String utca) {
this.utca = utca;
}
public int getHsz() {
return hsz;
}
public void setHsz(int hsz) {
this.hsz = hsz;
}
public Collection<Szolgaltato> getSzolgaltatok() {
return szolgaltatok;
}
public void setSzolgaltatok(Collection<Szolgaltato> szolgaltatok) {
this.szolgaltatok = szolgaltatok;
}
public void addSzolgaltato(Szolgaltato sz) {
if (!this.szolgaltatok.contains(sz)) {
this.szolgaltatok.add(sz);
}
if (!sz.getVevok().contains(this)) {
sz.getVevok().add(this);
}
}
@Override
public String toString() {
return "Vevo [ugyfelszam=" + ugyfelszam + ", nev=" + nev + ",
e_mail="+ e_mail + ", tel=" + tel + ", irsz=" + irsz
+ ", varos="+ varos + ", utca=" + utca + ", hsz=" +
hsz + "]";
}
}
Szolgáltató osztály:
@Entity
@Table(name="szolgaltato")
public class Szolgaltato implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="cegazonosito")
private String cegazonosito;
private String nev;
@Column(name="i")
private int irsz;
@Column(name="v")
private String varos;
@Column(name="u")
private String utca;
private int hsz;
@OneToMany(mappedBy="szolgaltato", fetch=FetchType.EAGER)
private Collection<Tel> tels;
@ManyToMany
@JoinTable(
name="arusit",
joinColumns=@JoinColumn(
name="szolgaltato",
referencedColumnName="cegazonosito"),
inverseJoinColumns=@JoinColumn(
name="mobiltelefon",
referencedColumnName="cikkszam")
)
private Collection<Mobiltelefon>mobiltelefonok;
@ManyToMany(mappedBy="szolgaltatok")
private Collection<Vevo> vevok;
public Szolgaltato() {
super();
tels = new ArrayList<Tel>();
mobiltelefonok = new ArrayList<Mobiltelefon>();
vevok = new ArrayList<Vevo>();
}
public String getCegazonosito() {
return cegazonosito;
}
public void setCegazonosito(String cegazonosito) {
this.cegazonosito = cegazonosito;
}
public String getNev() {
return nev;
}
public void setNev(String nev) {
this.nev = nev;
}
public int getIrsz() {
return irsz;
}
public void setIrsz(int irsz) {
this.irsz = irsz;
}
public String getVaros() {
return varos;
}
public void setVaros(String varos) {
this.varos = varos;
}
public String getUtca() {
return utca;
}
public void setUtca(String utca) {
this.utca = utca;
}
public int getHsz() {
return hsz;
}
public void setHsz(int hsz) {
this.hsz = hsz;
}
public Collection<Tel> getTels() {
return tels;
}
public void setTels(List<Tel> tels) {
this.tels = tels;
}
public Collection<Mobiltelefon> getMobiltelefonok() {
return mobiltelefonok;
}
public void setMobiltelefonok(Collection<Mobiltelefon> mobiltelefonok) {
this.mobiltelefonok = mobiltelefonok;
}
public Collection<Vevo> getVevok() {
return vevok;
}
public void setVevok(Collection<Vevo> vevok) {
this.vevok = vevok;
}
public void addTel(Tel t) {
if (!this.tels.contains(t)) {
this.tels.add(t);
if (t.getSzolgaltato() != null) {
t.getSzolgaltato().getTels().remove(t);
}
t.setSzolgaltato(this);
}
}
public void addMobiltelefon(Mobiltelefon m) {
if (!this.mobiltelefonok.contains(m)) {
this.mobiltelefonok.add(m);
}
if (!m.getSzolgaltatok().contains(this)) {
m.addSzolgaltato(this);
}
}
public void addVevo(Vevo v) {
if (!this.vevok.contains(v)) {
this.vevok.add(v);
}
if (!v.getSzolgaltatok().contains(this)) {
v.getSzolgaltatok().add(this);
}
}
@Override
public String toString() {
return "Szolgaltato [cegazonosito=" + cegazonosito + ", nev=" +
nev+ ", irsz=" + irsz + ", varos=" + varos + ",
utca=" + utca+ ", hsz=" + hsz + "]";
}
}<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns= xmlns:xsi= xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unitname="Feladatok"transaction-type="RESOURCE_LOCAL"> <class>feladatok.jpa.model.Mobiltelefon</class> <class>feladatok.jpa.model.Vevo</class> <class>feladatok.jpa.model.Szolgaltato</class> <class>feladatok.jpa.model.Tel</class> <properties> <propertyname="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/feladatok"/> <propertyname="javax.persistence.jdbc.user"value="proba"/> <propertyname="javax.persistence.jdbc.password" value="feladatok"/> <propertyname="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <propertyname="eclipselink.ddl-generation"value="create- tables"/> <propertyname="eclipselink.ddl-generation.output-mode" value="database"/> </properties> </persistence-unit> </persistence>
public class VevoKezelo {
private EntityManager em;
public VevoKezelo(EntityManager em) {
this.em = em;
}
public void insert(Vevo v) {
if (v != null) {
em.persist(v);
}
}
public void insert(int ugyfelszam, String nev, String email, int tel,
int irsz, String varos, String utca, int hsz) {
Vevo v = new Vevo();
v.setUgyfelszam(ugyfelszam);
v.setNev(nev);
v.setE_mail(email);
v.setTel(tel);
v.setIrsz(irsz);
+ v.setVaros(varos);
v.setUtca(utca);
v.setHsz(hsz);
this.insert(v);
}
public Vevo update(Vevo v) {
if (v != null) {
return em.merge(v);
}
return null;
}
public void remove(Vevo v) {
if (v != null)
em.remove(v);
}
public void remove(int ugyfelszam) {
this.remove(find(ugyfelszam));
}
public Vevo find(int ugyfelszam) {
return em.find(Vevo.class, ugyfelszam);
}
@SuppressWarnings("unchecked")
public Collection<Vevo> findAll() {
return (Collection<Vevo>)em.createQuery("select v from Vevo
v").getResultList();
}
} public class SzolgaltatoKezelo {
private EntityManager em;
public SzolgaltatoKezelo(EntityManager em) {
this.em = em;
}
public void insert(Szolgaltato sz) {
if (sz != null) {
em.persist(sz);
}
}
public void insert(String cegazonosito, String nev, int irsz,
Stringvaros, String utca, int hsz) {
Szolgaltato sz = new Szolgaltato();
sz.setCegazonosito(cegazonosito);
sz.setNev(nev);
sz.setVaros(varos);
sz.setUtca(utca);
sz.setHsz(hsz);
this.insert(sz);
}
public void remove(Szolgaltato sz) {
if (sz != null) {
em.remove(sz);
}
}
public void remove(String cegazonosito) {
this.remove(find(cegazonosito));
}
public Szolgaltato find(String cegazonosito) {
return em.find(Szolgaltato.class, cegazonosito);
}
@SuppressWarnings("unchecked")
public Collection<Szolgaltato> findAll() {
return (Collection<Szolgaltato>)em.createQuery("select sz from
Szolgaltato sz").getResultList();
}
}public class SzolgaltatoKezelo {
private EntityManager em;
public SzolgaltatoKezelo(EntityManager em) {
this.em = em;
}
public void insert(Szolgaltato sz) {
if (sz != null) {
em.persist(sz);
}
}
public void insert(String cegazonosito, String nev, int irsz,
String varos, String utca, int hsz) {
Szolgaltato sz = new Szolgaltato();
sz.setCegazonosito(cegazonosito);
sz.setNev(nev);
sz.setVaros(varos);
sz.setUtca(utca);
sz.setHsz(hsz);
this.insert(sz);
}
public void remove(Szolgaltato sz) {
if (sz != null) {
em.remove(sz);
}
}
public void remove(String cegazonosito) {
this.remove(find(cegazonosito));
}
public Szolgaltato find(String cegazonosito) {
return em.find(Szolgaltato.class, cegazonosito);
}
@SuppressWarnings("unchecked")
public Collection<Szolgaltato> findAll() {
return (Collection<Szolgaltato>)em.createQuery("select sz from
Szolgaltato sz").getResultList();
}
// Kiegészítés, hogy az árusításokat is kezelje
public void elad(Szolgaltato sz, Mobiltelefon m) {
sz.addMobiltelefon(m);
}
public Collection<Mobiltelefon> eladottTelefonok(Szolgaltato sz) {
return sz.getMobiltelefonok();
}
publicboolean isTelefonEladott(Mobiltelefon m) {
for (Szolgaltato sz : findAll() ) {
if (sz.getMobiltelefonok().contains(m))
return true;
}
return false;
}
}
Kezelő osztály:
public abstract class Kezelo<T> {
private Class<T> type;
protected EntityManager em;
protected Kezelo(EntityManager em, Class<T> type) {
this.em=em;
this.type = type;
}
public void insert(T item) {
if (item != null)
em.persist(item);
}
public T update(T item) {
if (item != null)
return em.merge(item);
else
return null;
}
public void remove(T item) {
if (item!=null)
em.remove(em.merge(item));
}
public T find(Object key) {
return em.find(type, key);
}
public abstract Collection<T> findAll();
}
Módosított VevőKezelő osztály:
public class VevoKezelo extends Kezelo<Vevo> {
public VevoKezelo(EntityManager em) {
super(em,Vevo.class);
}
public void insert(int ugyfelszam, String nev, String email, int tel,
int irsz, String varos, String utca, int hsz) {
Vevo v = new Vevo();
v.setUgyfelszam(ugyfelszam);
v.setNev(nev);
v.setE_mail(email);
v.setTel(tel);
v.setIrsz(irsz);
v.setVaros(varos);
v.setUtca(utca);
v.setHsz(hsz);
super.insert(v);
}
public void remove(int ugyfelszam) {
super.remove(find(ugyfelszam));
}
@Override
@SuppressWarnings("unchecked")
public Collection<Vevo> findAll() {
return (Collection<Vevo>)em.createQuery("select v from Vevo
v").getResultList();
}
}
Módosított SzolgáltatóKezelő osztály:
public class SzolgaltatoKezelo extends Kezelo<Szolgaltato> {
public SzolgaltatoKezelo(EntityManager em) {
super(em,Szolgaltato.class);
}
public void insert(String cegazonosito, String nev, int irsz,
String varos, String utca, int hsz) {
Szolgaltato sz = new Szolgaltato();
sz.setCegazonosito(cegazonosito);
sz.setNev(nev);
sz.setVaros(varos);
sz.setUtca(utca);
sz.setHsz(hsz);
super.insert(sz);
}
public void remove(String cegazonosito) {
super.remove(find(cegazonosito));
}
@SuppressWarnings("unchecked")
@Override
public Collection<Szolgaltato> findAll() {
return (Collection<Szolgaltato>)em.createQuery("select sz from
Szolgaltato sz").getResultList();
}
// Kiegészítés, hogy az árusításokat is kezelje
public void elad(Szolgaltato sz, Mobiltelefon m) {
sz.addMobiltelefon(m);
}
public Collection<Mobiltelefon> eladottTelefonok(Szolgaltato sz) {
return sz.getMobiltelefonok();
}
publicboolean isTelefonEladott(Mobiltelefon m) {
for (Szolgaltato sz : findAll() ) {
if (sz.getMobiltelefonok().contains(m))
return true;
}
return false;
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
VevoKezelo vk = new VevoKezelo(em);
Vevo v = new Vevo();
v.setUgyfelszam(987654322);
v.setNev("JPA_XYZ");
v.setE_mail("JPAvevo@jpa.hu");
v.setIrsz(9999);
v.setVaros("Város1");
v.setUtca("Utca1");
v.setHsz(99);
em.getTransaction().begin();
vk.insert(v);
em.getTransaction().commit();
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
SzolgaltatoKezelo szk = new SzolgaltatoKezelo(em);
em.getTransaction().begin();
szk.insert("987651234","Cég99",8888,"Város2","Utca2",88);
em.getTransaction().commit();
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
VevoKezelo vk = new VevoKezelo(em);
SzolgaltatoKezelo szk = new SzolgaltatoKezelo(em);
Vevo v = vk.find(987654322);
Szolgaltato sz = szk.find("987651234");
v.addSzolgaltato(sz);
em.getTransaction().begin();
vk.update(v);
em.getTransaction().commit();
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
VevoKezelo vk = new VevoKezelo(em);
Vevo v = vk.find(11223344);
v.setVaros("Új-város");
v.setE_mail("újmail@jpa.hu");
em.getTransaction().begin();
vk.update(v);
em.getTransaction().commit();
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
SzolgaltatoKezelo szk = new SzolgaltatoKezelo(em);
Szolgaltato sz = szk.find("987651234");
sz.setIrsz(1234);
sz.setUtca("Újutca");
sz.setVaros("Város-11");
em.getTransaction().begin();
szk.update(sz);
em.getTransaction().commit();
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
VevoKezelo vk = new VevoKezelo(em);
Vevo v = vk.find(11223344);
em.getTransaction().begin();
vk.remove(v);
em.getTransaction().commit();
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
SzolgaltatoKezelo szk = new SzolgaltatoKezelo(em);
Szolgaltato sz = szk.find("987651234");
em.getTransaction().begin();
szk.remove(sz);
em.getTransaction().commit();
}
}public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
VevoKezelo vk = new VevoKezelo(em);
Collection<Vevo> vList = vk.findAll();
for (Vevo v : vList) {
System.out.println(v);
}
}
}
public class Main {
private static final String PERSISTENCE_UNIT_NAME = "Feladatok";
private static EntityManagerFactory factory;
public static void main(String[] args) {
factory = Persistence.createEntityManagerFactory(
PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
SzolgaltatoKezelo szk = new SzolgaltatoKezelo(em);
Collection<Szolgaltato> szList = szk.findAll();
for (Szolgaltato sz : szList) {
System.out.println(sz);
}
}
}