
Comments Off on Java Algorithme d’Euclide: déterminer le plus grand commun diviseur
Java Algorithme d’Euclide: déterminer le plus grand commun diviseur
Download
/**
* @(#)LeplusGrandDiviseurCommun.java
*
*
* @author
* @version 1.00 2013/9/26
*/
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class LeplusGrandDiviseurCommun
{
...
Comments Off on Java Persistane: Exemple de Requête nommée sans Paramètre.
Java Persistane: Exemple de Requête nommée sans Paramètre.
Fichier: Department.java
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Department {
@Id
private int id;
private String nom;
@OneToMany(mappedBy="department")
private Collection<Professeur> employees;
public Department() {
employees = new ArrayList<Professeur>();
}
public int getId() {
return id;
}
public String getNom() {
return nom;
}
public Collection<Professeur> getProfesseurs() {
return employees;
}
public String toString() {
return "Department no: " + getId() +
", nom: " + getNom();
}
}
Fichier: Professeur.java
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NomdQueries;
import javax.persistence.NomdQuery;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@NomdQueries({
@NomdQuery(nom="Professeur.findAll",
query="SELECT e FROM Professeur e"),
@NomdQuery(nom="Professeur.findByPrimaryKey",
query="SELECT e FROM Professeur e WHERE e.id = :id"),
@NomdQuery(nom="Professeur.findByNom",
query="SELECT e FROM Professeur e WHERE e.nom = :nom")
})
public class Professeur {
@Id
private int id;
private String nom;
private long salaire;
@Temporal(TemporalType.DATE)
private Date startDate;
@ManyToOne
private Professeur manager;
@OneToMany(mappedBy="manager")
private Collection<Professeur> directs;
@ManyToOne
private Department department;
@ManyToMany
private Collection<Project> projects;
public Professeur() {
projects = new ArrayList<Project>();
directs = new ArrayList<Professeur>();
}
public int getId() {
return id;
}
public String getNom() {
return nom;
}
public long getSalary() {
return salaire;
}
public Date getStartDate() {
return startDate;
}
public Department getDepartment() {
return department;
}
public Collection<Professeur> getDirects() {
return directs;
}
public Professeur getManager() {
return manager;
}
public Collection<Project> getProjects() {
return projects;
}
public String toString() {
return "Professeur " + getId() +
": nom: " + getNom() +
", salaire: " + getSalary() +
", dept: " + ((getDepartment() == null) ? null : getDepartment().getNom());
}
}
Fichier: ProfesseurService.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public Collection<Professeur> findAllProfesseurs() {
return (Collection<Professeur>) em.createNomdQuery("Professeur.findAll").getResultList();
}
}
Fichier: Project.java
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class Project {
@Id
protected int id;
protected String nom;
@ManyToMany(mappedBy="projects")
private Collection<Professeur> employees;
public Project() {
employees = new ArrayList<Professeur>();
}
public int getId() {
return id;
}
public String getNom() {
return nom;
}
public Collection<Professeur> getProfesseurs() {
return employees;
}
public String toString() {
return "Project id: " + getId() + ", nom: " + getNom();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: Main.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
Collection<Professeur> l= service.findAllProfesseurs();
util.checkData("select * from Professeur");
util.checkData("select * from Department");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...
Comments Off on Java Persistane: Comment utiliser une requête nommée.
Java Persistane: Comment utiliser une requête nommée.
Fichier: Adresse.java
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Adresse {
@Id
private int id;
private String rue;
private String ville;
private String pays;
private String codepostal;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getRue() {
return rue;
}
public void setRue(String address) {
this.rue = address;
}
public String getVille() {
return ville;
}
public void setVille(String ville) {
this.ville = ville;
}
public String getPays() {
return pays;
}
public void setPays(String pays) {
this.pays = pays;
}
public String getCodePostal() {
return codepostal;
}
public void setCodePostal(String codepostal) {
this.codepostal = codepostal;
}
public String toString() {
return "Adresse id: " + getId() + ", rue: " + getRue() + ", ville: " + getVille()
+ ", pays: " + getPays() + ", codepostal: " + getCodePostal();
}
}
Fichier: Professeur.java
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NomdNativeQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(nom = "EMP")
@NomdNativeQuery(nom = "nativeSQL", query = "SELECT emp1.emp_id, emp1.nom, emp1.manager_id, "
+ "emp1.dept_id, emp1.address_id " + "FROM EMP emp1, EMP emp2 "
+ "WHERE ((emp2.EMP_ID = ?) AND (emp2.EMP_ID = emp1.MANAGER_ID))", resultClass = Professeur.class)
public class Professeur {
@Id
@Column(nom = "EMP_ID")
private int id;
private String nom;
@OneToOne
private Adresse address;
@ManyToOne
@JoinColumn(nom = "DEPT_ID")
private Department department;
@ManyToOne
@JoinColumn(nom = "MANAGER_ID")
private Professeur manager;
@OneToMany(mappedBy = "manager")
private Collection<Professeur> directs = new ArrayList<Professeur>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public Adresse getAdresse() {
return address;
}
public void setAdresse(Adresse address) {
this.address = address;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public Collection<Professeur> getDirects() {
return directs;
}
public void addDirect(Professeur employee) {
if (!getDirects().contains(employee)) {
getDirects().add(employee);
if (employee.getManager() != null) {
employee.getManager().getDirects().remove(employee);
}
employee.setManager(this);
}
}
public Professeur getManager() {
return manager;
}
public void setManager(Professeur manager) {
this.manager = manager;
}
public String toString() {
return "Professeur id: " + getId() + " nom: " + getNom() + " with MgrId: "
+ (getManager() == null ? null : getManager().getId());
}
}
Fichier: Department.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Department {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String nom;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String deptNom) {
this.nom = deptNom;
}
public String toString() {
return "Department id: " + getId() + ", nom: " + getNom();
}
}
Fichier: ProfesseurService.java
import java.util.List;
import javax.persistence.EntityManager;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public List findProfesseursReportingTo(int managerId) {
return em.createNomdQuery("nativeSQL").setParameter(1, managerId)
.getResultList();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: Main.java
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
service.findProfesseursReportingTo(1);
util.checkData("select * from EMP");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...
Comments Off on Java 8: Exemple d’utilisation des Expressions lambda
Java 8: Exemple d’utilisation des Expressions lambda
En prélude au lancement officiel de OpenJdk avec Java SE 8, Nous introduisons ici l’utilisation d’une fonctionnalité de Java8 Qui va beaucoup plaire au développeurs passionnés de Java notamment ceux qui utilisent ou qui ont déjà...
Comments Off on Java Persistane: Exemple d’une Rélation un à plusieur basé sur une Liste de Collection.
Java Persistane: Exemple d’une Rélation un à plusieur basé sur une Liste de Collection.
Fichier: Department.java
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
@Entity
public class Department {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String nom;
@OneToMany(mappedBy = "department")
@OrderBy("nom ASC")
private List<Professeur> employees;
public Department() {
employees = new ArrayList<Professeur>();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String deptNom) {
this.nom = deptNom;
}
public void addProfesseur(Professeur employee) {
if (!getProfesseurs().contains(employee)) {
getProfesseurs().add(employee);
if (employee.getDepartment() != null) {
employee.getDepartment().getProfesseurs().remove(employee);
}
employee.setDepartment(this);
}
}
public Collection<Professeur> getProfesseurs() {
return employees;
}
public String toString() {
return "Department id: " + getId() + ", nom: " + getNom();
}
}
Fichier: Professeur.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Professeur {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String nom;
private long salaire;
@ManyToOne
private Department department;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public long getSalary() {
return salaire;
}
public void setSalary(long salaire) {
this.salaire = salaire;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public String toString() {
return "Professeur id: " + getId() + " nom: " + getNom() +
" with " + getDepartment();
}
}
Fichier: ProfesseurService.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.Query;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public Department createDepartment(String nom) {
Department dept = new Department();
dept.setNom(nom);
em.persist(dept);
return dept;
}
public Collection<Department> findAllDepartments() {
Query query = em.createQuery("SELECT d FROM Department d");
return (Collection<Department>) query.getResultList();
}
public Professeur createProfesseur(String nom, long salaire) {
Professeur emp = new Professeur();
emp.setNom(nom);
emp.setSalary(salaire);
em.persist(emp);
return emp;
}
public Professeur setProfesseurDepartment(int empId, int deptId) {
Professeur emp = em.find(Professeur.class, empId);
Department dept = em.find(Department.class, deptId);
dept.addProfesseur(emp);
return emp;
}
public Collection<Professeur> findAllProfesseurs() {
Query query = em.createQuery("SELECT e FROM Professeur e");
return (Collection<Professeur>) query.getResultList();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: Main.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
Professeur emp = service.createProfesseur("empNom", 100L);
Department dept = service.createDepartment("deptNom");
emp = service.setProfesseurDepartment(emp.getId(),dept.getId());
System.out.println(emp.getDepartment() + " with Professeurs:");
System.out.println(emp.getDepartment().getProfesseurs());
Collection<Professeur> emps = service.findAllProfesseurs();
if (emps.isEmpty()) {
System.out.println("No Professeurs found ");
} else {
System.out.println("Found Professeurs:");
for (Professeur emp1 : emps) {
System.out.println(emp1);
}
}
Collection<Department> depts = service.findAllDepartments();
if (depts.isEmpty()) {
System.out.println("No Departments found ");
} else {
System.out.println("Found Departments:");
for (Department dept1 : depts) {
System.out.println(dept1 + " with " + dept1.getProfesseurs().size() + " employees "
+ dept1.getProfesseurs());
}
}
util.checkData("select * from Professeur");
util.checkData("select * from Department");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...
Comments Off on Java Persistane: Exemple de requête Native Insert avec parametre.
Java Persistane: Exemple de requête Native Insert avec parametre.
Fichier: Adresse.java
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Adresse {
@Id
private int id;
private String rue;
private String ville;
private String pays;
private String codepostal;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getRue() {
return rue;
}
public void setRue(String address) {
this.rue = address;
}
public String getVille() {
return ville;
}
public void setVille(String ville) {
this.ville = ville;
}
public String getPays() {
return pays;
}
public void setPays(String pays) {
this.pays = pays;
}
public String getCodePostal() {
return codepostal;
}
public void setCodePostal(String codepostal) {
this.codepostal = codepostal;
}
public String toString() {
return "Adresse id: " + getId() + ", rue: " + getRue() + ", ville: " + getVille()
+ ", pays: " + getPays() + ", codepostal: " + getCodePostal();
}
}
Fichier: Department.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Department {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String nom;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String deptNom) {
this.nom = deptNom;
}
public String toString() {
return "Department id: " + getId() + ", nom: " + getNom();
}
}
Fichier: Professeur.java
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NomdNativeQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(nom = "EMP")
@NomdNativeQuery(nom = "nativeSQL", query = "SELECT emp1.emp_id, emp1.nom, emp1.manager_id, "
+ "emp1.dept_id, emp1.address_id " + "FROM EMP emp1, EMP emp2 "
+ "WHERE ((emp2.EMP_ID = ?) AND (emp2.EMP_ID = emp1.MANAGER_ID))", resultClass = Professeur.class)
public class Professeur {
@Id
@Column(nom = "EMP_ID")
private int id;
private String nom;
@OneToOne
private Adresse address;
@ManyToOne
@JoinColumn(nom = "DEPT_ID")
private Department department;
@ManyToOne
@JoinColumn(nom = "MANAGER_ID")
private Professeur manager;
@OneToMany(mappedBy = "manager")
private Collection<Professeur> directs = new ArrayList<Professeur>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public Adresse getAdresse() {
return address;
}
public void setAdresse(Adresse address) {
this.address = address;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public Collection<Professeur> getDirects() {
return directs;
}
public void addDirect(Professeur employee) {
if (!getDirects().contains(employee)) {
getDirects().add(employee);
if (employee.getManager() != null) {
employee.getManager().getDirects().remove(employee);
}
employee.setManager(this);
}
}
public Professeur getManager() {
return manager;
}
public void setManager(Professeur manager) {
this.manager = manager;
}
public String toString() {
return "Professeur id: " + getId() + " nom: " + getNom() + " with MgrId: "
+ (getManager() == null ? null : getManager().getId());
}
}
Fichier: ProfesseurService.java
import java.util.List;
import javax.persistence.EntityManager;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public void addProfesseur(String id) {
em.createNativeQuery("INSERT INTO emp (EMP_ID, nom) " +
" VALUES(?, 'asdf')")
.setParameter(1, id)
.executeUpdate();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: Main.java
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
service.addProfesseur("12");
util.checkData("select * from EMP");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...
Comments Off on Java Persistane: Exemple de Schéma Plusieur à un et Un à plusieur.
Java Persistane: Exemple de Schéma Plusieur à un et Un à plusieur.
Fichier: Department.java
import java.util.HashMap;
import java.util.Map;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MapKey;
import javax.persistence.OneToMany;
@Entity
public class Department {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String nom;
@OneToMany(mappedBy="department")
@MapKey(nom="nom")
private Map<String, Professeur> employees;
public Department() {
employees = new HashMap<String, Professeur>();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String deptNom) {
this.nom = deptNom;
}
public void addProfesseur(Professeur employee) {
if (!getProfesseurs().containsKey(employee.getNom())) {
getProfesseurs().put(employee.getNom(), employee);
if (employee.getDepartment() != null) {
employee.getDepartment().getProfesseurs().remove(employee.getNom());
}
employee.setDepartment(this);
}
}
public Map<String,Professeur> getProfesseurs() {
return employees;
}
public String toString() {
return "Department id: " + getId() +
", nom: " + getNom();
}
}
Fichier: Professeur.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
@Entity
public class Professeur {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String nom;
private long salaire;
@ManyToOne
private Department department;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public long getSalary() {
return salaire;
}
public void setSalary(long salaire) {
this.salaire = salaire;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public String toString() {
return "Professeur id: " + getId() + " nom: " + getNom() +
" with " + getDepartment();
}
}
Fichier: ProfesseurService.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.Query;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public Department createDepartment(String nom) {
Department dept = new Department();
dept.setNom(nom);
em.persist(dept);
return dept;
}
public Collection<Department> findAllDepartments() {
Query query = em.createQuery("SELECT d FROM Department d");
return (Collection<Department>) query.getResultList();
}
public Professeur createProfesseur(String nom, long salaire) {
Professeur emp = new Professeur();
emp.setNom(nom);
emp.setSalary(salaire);
em.persist(emp);
return emp;
}
public Professeur setProfesseurDepartment(int empId, int deptId) {
Professeur emp = em.find(Professeur.class, empId);
Department dept = em.find(Department.class, deptId);
dept.addProfesseur(emp);
emp.setDepartment(dept);
return emp;
}
public Collection<Professeur> findAllProfesseurs() {
Query query = em.createQuery("SELECT e FROM Professeur e");
return (Collection<Professeur>) query.getResultList();
}
}
Fichier: Main.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
Professeur emp = service.createProfesseur("empNom",100L);
Department dept = service.createDepartment("deptNom");
emp = service.setProfesseurDepartment(emp.getId(),dept.getId());
System.out.println(emp.getDepartment() + " with Professeurs:");
System.out.println(emp.getDepartment().getProfesseurs());
Collection<Professeur> emps = service.findAllProfesseurs();
if (emps.isEmpty()) {
System.out.println("No Professeurs found ");
} else {
System.out.println("Found Professeurs:");
for (Professeur emp1 : emps) {
System.out.println(emp1);
}
}
Collection<Department> depts = service.findAllDepartments();
if (depts.isEmpty()) {
System.out.println("No Departments found ");
} else {
System.out.println("Found Departments:");
for (Department dept1 : depts) {
System.out.println(dept1 + " with " + dept1.getProfesseurs().size() +
" employees " + dept1.getProfesseurs());
}
}
util.checkData("select * from Professeur");
util.checkData("select * from Department");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...
Comments Off on Java Persistane: Joindre deux Entités avec Paramètre.
Java Persistane: Joindre deux Entités avec Paramètre.
Fichier: Department.java
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Department {
@Id
private int id;
private String nom;
@OneToMany(mappedBy="department")
private Collection<Professeur> employees;
public Department() {
employees = new ArrayList<Professeur>();
}
public int getId() {
return id;
}
public String getNom() {
return nom;
}
public Collection<Professeur> getProfesseurs() {
return employees;
}
public String toString() {
return "Department no: " + getId() +
", nom: " + getNom();
}
}
Fichier: Professeur.java
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Professeur {
@Id
private int id;
private String nom;
private long salaire;
@Temporal(TemporalType.DATE)
private Date startDate;
@ManyToOne
private Professeur manager;
@OneToMany(mappedBy="manager")
private Collection<Professeur> directs;
@ManyToOne
private Department department;
@ManyToMany
private Collection<Project> projects;
public Professeur() {
projects = new ArrayList<Project>();
directs = new ArrayList<Professeur>();
}
public int getId() {
return id;
}
public String getNom() {
return nom;
}
public long getSalary() {
return salaire;
}
public Date getStartDate() {
return startDate;
}
public Department getDepartment() {
return department;
}
public Collection<Professeur> getDirects() {
return directs;
}
public Professeur getManager() {
return manager;
}
public Collection<Project> getProjects() {
return projects;
}
public String toString() {
return "Professeur " + getId() +
": nom: " + getNom() +
", salaire: " + getSalary() +
", dept: " + ((getDepartment() == null) ? null : getDepartment().getNom());
}
}
Fichier: ProfesseurService.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public long queryEmpSalary(String deptNom, String empNom) {
String query = "SELECT e.salaire " + "FROM Professeur e " + "WHERE e.department.nom = '"
+ deptNom + "' AND " + " e.nom = '" + empNom + "'";
try {
return (Long) em.createQuery(query).getSingleResult();
} catch (NoResultException e) {
return 0;
}
}
public long queryEmpSalaryUsingParams(String deptNom, String empNom) {
try {
return (Long) em.createQuery(
"SELECT e.salaire " + "FROM Professeur e " + "WHERE e.department.nom = :deptNom AND "
+ " e.nom = :empNom ").setParameter("deptNom", deptNom).setParameter("empNom",
empNom).getSingleResult();
} catch (NoResultException e) {
return 0;
}
}
}
Fichier: Project.java
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
@Entity
public class Project {
@Id
protected int id;
protected String nom;
@ManyToMany(mappedBy="projects")
private Collection<Professeur> employees;
public Project() {
employees = new ArrayList<Professeur>();
}
public int getId() {
return id;
}
public String getNom() {
return nom;
}
public Collection<Professeur> getProfesseurs() {
return employees;
}
public String toString() {
return "Project id: " + getId() + ", nom: " + getNom();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: Main.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
long l = service.queryEmpSalary("deptNom", "empNom");
long q = service.queryEmpSalaryUsingParams("deptNom", "empNom");
util.checkData("select * from Professeur");
util.checkData("select * from Department");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...
Comments Off on Java Persistane: Exemple de durée de vie de CallBack en ajoutant les Ecouteurs au Sous-classe.
Java Persistane: Exemple de durée de vie de CallBack en ajoutant les Ecouteurs au Sous-classe.
Fichier: ContractProfesseur.java
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.ExcludeSuperclassListeners;
import javax.persistence.PrePersist;
import javax.persistence.Table;
@Entity
@Table(nom="CONTRACT_EMP")
@DiscriminatorValue("1")
@ExcludeSuperclassListeners
@EntityListeners(ProfesseurDebugListener.class)
public class ContractProfesseur extends Professeur {
@Column(nom="D_RATE")
private int dailyRate;
private int term;
@PrePersist
public void verifyTerm() {
System.out.println("ContractProfesseur.verifyTerm called on employee: " + getId());
}
public int getDailyRate() {
return dailyRate;
}
public void setDailyRate(int dailyRate) {
this.dailyRate = dailyRate;
}
public int getTerm() {
return term;
}
public void setTerm(int term) {
this.term = term;
}
public String toString() {
return "ContractProfesseur id: " + getId() + " nom: " + getNom();
}
}
Fichier: Professeur.java
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.PostLoad;
import javax.persistence.PostPersist;
import javax.persistence.PostUpdate;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
@Entity
@Table(nom="EMP")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(nom="EMP_TYPE", discriminatorType=DiscriminatorType.INTEGER)
@EntityListeners(ProfesseurDebugListener.class)
public abstract class Professeur {
@Id private int id;
private String nom;
@Temporal(TemporalType.DATE)
@Column(nom="S_DATE")
private Date startDate;
@Transient private long syncTime;
@PostPersist
@PostUpdate
@PostLoad
private void resetSyncTime() {
System.out.println("Professeur.resetSyncTime called on employee: " + getId());
syncTime = System.currentTimeMillis();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public String toString() {
return "Professeur id: " + getId() + " nom: " + getNom();
}
}
Fichier: ProfesseurDebugListener.java
import javax.persistence.PostPersist;
public class ProfesseurDebugListener {
@PostPersist
public void auditNewHire(Professeur emp) {
System.out.println(" called on employee: " + emp.getId());
}
}
Fichier: ProfesseurService.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.Query;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public Professeur createProfesseur(int id, String nom) {
Professeur emp = new ContractProfesseur();
emp.setId(id);
emp.setNom(nom);
em.persist(emp);
return emp;
}
public void removeProfesseur(int id) {
Professeur emp = findProfesseur(id);
if (emp != null) {
em.remove(emp);
}
}
public Professeur changeProfesseurNom(int id, String newNom) {
Professeur emp = findProfesseur(id);
if (emp != null) {
emp.setNom(newNom);
}
return emp;
}
public Professeur findProfesseur(int id) {
return em.find(Professeur.class, id);
}
public Collection<Professeur> findAllProfesseurs() {
Query query = em.createQuery("SELECT e FROM Professeur e");
return (Collection<Professeur>) query.getResultList();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: Main.java
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
service.createProfesseur(1, "nom");
for (Professeur emp : service.findAllProfesseurs()) {
System.out.print(emp);
}
service.changeProfesseurNom(1, "newnom");
for (Professeur emp : service.findAllProfesseurs()) {
System.out.print(emp);
}
service.removeProfesseur(1);
for (Professeur emp : service.findAllProfesseurs()) {
System.out.print(emp);
}
util.checkData("select * from CONTRACT_EMP");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...
Comments Off on Java Persistane: Comment Modfier une valeur discriminatrice.
Java Persistane: Comment Modfier une valeur discriminatrice.
Fichier: AbstractProfesseur.java
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public abstract class AbstractProfesseur extends Professeur {
private int vacation;
public int getVacation() {
return vacation;
}
public void setVacation(int vacation) {
this.vacation = vacation;
}
}
Fichier: BadProfesseur.java
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity(nom="BadEmp")
@DiscriminatorValue("BadEmp")
public class BadProfesseur extends AbstractProfesseur {
@Column(nom="H_RATE")
private float hourlyRate;
public float getHourlyRate() {
return hourlyRate;
}
public void setHourlyRate(float hourlyRate) {
this.hourlyRate = hourlyRate;
}
public String toString() {
return "PartTimeProfesseur id: " + getId() + " nom: " + getNom();
}
}
Fichier: GoodProfesseur.java
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity
@DiscriminatorValue("GoodEmp")
public class GoodProfesseur extends AbstractProfesseur {
private long salaire;
private long pension;
public long getPension() {
return pension;
}
public void setPension(long pension) {
this.pension = pension;
}
public long getSalary() {
return salaire;
}
public void setSalary(long salaire) {
this.salaire = salaire;
}
public String toString() {
return "GoodProfesseur id: " + getId() + " nom: " + getNom();
}
}
Fichier: Professeur.java
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
@Table(nom="EMP")
@Inheritance
@DiscriminatorColumn(nom="EMP_TYPE")
public abstract class Professeur {
@Id private int id;
private String nom;
@Temporal(TemporalType.DATE)
@Column(nom="S_DATE")
private Date startDate;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public String toString() {
return "Professeur id: " + getId() + " nom: " + getNom();
}
}
Fichier: ProfesseurService.java
import java.util.Collection;
import javax.persistence.EntityManager;
import javax.persistence.Query;
public class ProfesseurService {
protected EntityManager em;
public ProfesseurService(EntityManager em) {
this.em = em;
}
public void createProfesseur(Professeur emp) {
em.persist(emp);
}
public Collection<Professeur> findAllProfesseurs() {
Query query = em.createQuery("SELECT e FROM Professeur e");
return (Collection<Professeur>) query.getResultList();
}
}
Fichier: JPAUtil.java
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Paysment;
public class JPAUtil {
Paysment st;
public JPAUtil() throws Exception{
Class.forNom("org.apache.derby.jdbc.ClientDriver");
System.out.println("Driver Loaded.");
String url = "jdbc:derby://localhost:1527/tutorial";
Connection conn = DriverManager.getConnection(url, "sa", "");
System.out.println("Got Connection.");
st = conn.createPaysment();
}
public void executeSQLCommand(String sql) throws Exception {
st.executeUpdate(sql);
}
public void checkData(String sql) throws Exception {
ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData();
for (int i = 0; i < metadata.getColumnCount(); i++) {
System.out.print(" "+ metadata.getColumnLabel(i + 1));
}
System.out.println("
----------------------------------");
while (rs.next()) {
for (int i = 0; i < metadata.getColumnCount(); i++) {
Object value = rs.getObject(i + 1);
if (value == null) {
System.out.print(" ");
} else {
System.out.print(" "+value.toString().trim());
}
}
System.out.println("");
}
}
}
Fichier: Main.java
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {
public static void main(String[] a) throws Exception {
JPAUtil util = new JPAUtil();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ProfesseurService");
EntityManager em = emf.createEntityManager();
ProfesseurService service = new ProfesseurService(em);
em.getTransaction().begin();
Professeur emp = null;
emp = new GoodProfesseur();
emp.setId(1);
emp.setNom("good");
service.createProfesseur(emp);
emp = new BadProfesseur();
emp.setId(2);
emp.setNom("bad");
service.createProfesseur(emp);
System.out.println("Professeurs: ");
for (Professeur emp1 : service.findAllProfesseurs()) {
System.out.print(emp1);
}
util.checkData("select * from EMP");
em.getTransaction().commit();
em.close();
emf.close();
}
}
Fichier: persistence.xml
<persistence 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" version="1.0">
<persistence-unit nom="JPAService" transaction-type="RESOURCE_LOCAL">
<properties>
<property nom="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property nom="hibernate.hbm2ddl.auto" value="update"/>
<property nom="hibernate.connection.driver_class" value="org.apache.derby.jdbc.ClientDriver"/>
<property nom="hibernate.connection.usernom" value="sa"/>
<property nom="hibernate.connection.password" value=""/>
<property nom="hibernate.connection.url" value="jdbc:derby://localhost:1527/tutorial"/>
</properties>
</persistence-unit>
</persistence>
...