From 3e50b39fed393fa532c6c523048ac8b8bde0326e Mon Sep 17 00:00:00 2001 From: Jesus Boadas Date: Thu, 4 May 2017 06:22:25 -0400 Subject: [PATCH] uncomment classes in core-java (#1777) * uncomment classes in core-java * Add content to guide to JDO --- .../baeldung/java8/comparator/Employee.java | 3 - .../java8/comparator/Java8ComparatorTest.java | 3 - libraries/myPersistence.xml | 26 +++ libraries/pom.xml | 5 + .../java/com/baeldung/jdo/GuideToJDO.java | 160 +++++++++++++++++- .../java/com/baeldung/jdo/ProductXML.java | 44 +++++ 6 files changed, 233 insertions(+), 8 deletions(-) create mode 100644 libraries/myPersistence.xml create mode 100644 libraries/src/main/java/com/baeldung/jdo/ProductXML.java diff --git a/core-java/src/test/java/com/baeldung/java8/comparator/Employee.java b/core-java/src/test/java/com/baeldung/java8/comparator/Employee.java index 0ef10410a9..bec0c37880 100644 --- a/core-java/src/test/java/com/baeldung/java8/comparator/Employee.java +++ b/core-java/src/test/java/com/baeldung/java8/comparator/Employee.java @@ -1,6 +1,4 @@ package com.baeldung.java8.comparator; -/* - import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -22,4 +20,3 @@ public class Employee implements Comparable{ } } -*/ \ No newline at end of file diff --git a/core-java/src/test/java/com/baeldung/java8/comparator/Java8ComparatorTest.java b/core-java/src/test/java/com/baeldung/java8/comparator/Java8ComparatorTest.java index 8e1cfa67af..62dd18972e 100644 --- a/core-java/src/test/java/com/baeldung/java8/comparator/Java8ComparatorTest.java +++ b/core-java/src/test/java/com/baeldung/java8/comparator/Java8ComparatorTest.java @@ -1,5 +1,4 @@ package com.baeldung.java8.comparator; -/* import java.util.Arrays; import java.util.Comparator; @@ -164,5 +163,3 @@ public class Java8ComparatorTest { } - -*/ \ No newline at end of file diff --git a/libraries/myPersistence.xml b/libraries/myPersistence.xml new file mode 100644 index 0000000000..de2c250957 --- /dev/null +++ b/libraries/myPersistence.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libraries/pom.xml b/libraries/pom.xml index e329eac44d..445a238540 100644 --- a/libraries/pom.xml +++ b/libraries/pom.xml @@ -251,6 +251,11 @@ h2 1.4.194 + + org.datanucleus + datanucleus-xml + 5.0.0-release + diff --git a/libraries/src/main/java/com/baeldung/jdo/GuideToJDO.java b/libraries/src/main/java/com/baeldung/jdo/GuideToJDO.java index fb7bd184ee..387c8c4e00 100644 --- a/libraries/src/main/java/com/baeldung/jdo/GuideToJDO.java +++ b/libraries/src/main/java/com/baeldung/jdo/GuideToJDO.java @@ -20,22 +20,29 @@ public class GuideToJDO { private static final Logger LOGGER = Logger.getLogger(GuideToJDO.class.getName()); private Random rnd = new Random(); private PersistenceUnitMetaData pumd; + private PersistenceUnitMetaData pumdXML; public static void main(String[] args) { new GuideToJDO(); } public GuideToJDO() { - CreateProperties(); + CreateH2Properties(); + CreateXMLProperties(); CreateProducts(); ListProducts(); + QueryJDOQL(); + QuerySQL(); + QueryJPQL(); UpdateProducts(); ListProducts(); DeleteProducts(); ListProducts(); + persistXML(); + listXMLProducts(); } - public void CreateProperties(){ + public void CreateH2Properties(){ pumd = new PersistenceUnitMetaData("dynamic-unit", "RESOURCE_LOCAL", null); pumd.addClassName("com.baeldung.jdo.Product"); @@ -48,6 +55,14 @@ public class GuideToJDO { } + public void CreateXMLProperties(){ + pumdXML = new PersistenceUnitMetaData("dynamic-unit", "RESOURCE_LOCAL", null); + pumdXML.addClassName("com.baeldung.jdo.ProductXML"); + pumdXML.setExcludeUnlistedClasses(); + pumdXML.addProperty("javax.jdo.option.ConnectionURL", "xml:file:myPersistence.xml"); + pumdXML.addProperty("datanucleus.autoCreateSchema", "true"); + } + public void CreateProducts() { PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); PersistenceManager pm = pmf.getPersistenceManager(); @@ -140,4 +155,145 @@ public class GuideToJDO { pm.close(); } } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void QueryJDOQL (){ + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + + // Declarative JDOQL : + LOGGER.log(Level.INFO, "Declarative JDOQL --------------------------------------------------------------"); + Query qDJDOQL = pm.newQuery(Product.class); + qDJDOQL.setFilter("name == 'Tablet' && price == price_value"); + qDJDOQL.declareParameters("double price_value"); + List resultsqDJDOQL = qDJDOQL.setParameters(80.0).executeList(); + + Iterator iterDJDOQL = resultsqDJDOQL.iterator(); + while (iterDJDOQL.hasNext()) { + Product p = iterDJDOQL.next(); + LOGGER.log(Level.WARNING, "Product name: {0} - Price: {1}", new Object[] { p.name, p.price }); + } + LOGGER.log(Level.INFO, "--------------------------------------------------------------"); + + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + + pm.close(); + } + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void QuerySQL (){ + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + + //SQL : + LOGGER.log(Level.INFO, "SQL --------------------------------------------------------------"); + Query query = pm.newQuery("javax.jdo.query.SQL", "SELECT * FROM PRODUCT"); + query.setClass(Product.class); + List results = query.executeList(); + + Iterator iter = results.iterator(); + while (iter.hasNext()) { + Product p = iter.next(); + LOGGER.log(Level.WARNING, "Product name: {0} - Price: {1}", new Object[] { p.name, p.price }); + } + LOGGER.log(Level.INFO, "--------------------------------------------------------------"); + + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + + pm.close(); + } + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void QueryJPQL (){ + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumd, null); + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + + //JPQL : + LOGGER.log(Level.INFO, "JPQL --------------------------------------------------------------"); + Query q = pm.newQuery("JPQL", "SELECT p FROM "+Product.class.getName()+" p WHERE p.name = 'Laptop'"); + List results = (List)q.execute(); + + Iterator iter = results.iterator(); + while (iter.hasNext()) { + Product p = iter.next(); + LOGGER.log(Level.WARNING, "Product name: {0} - Price: {1}", new Object[] { p.name, p.price }); + } + LOGGER.log(Level.INFO, "--------------------------------------------------------------"); + + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + + pm.close(); + } + } + + public void persistXML(){ + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumdXML, null); + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + ProductXML productXML = new ProductXML(0,"Tablet", 80.0); + pm.makePersistent(productXML); + ProductXML productXML2 = new ProductXML(1,"Phone", 20.0); + pm.makePersistent(productXML2); + ProductXML productXML3 = new ProductXML(2,"Laptop", 200.0); + pm.makePersistent(productXML3); + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + pm.close(); + } + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void listXMLProducts(){ + PersistenceManagerFactory pmf = new JDOPersistenceManagerFactory(pumdXML, null); + PersistenceManager pm = pmf.getPersistenceManager(); + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + + Query q = pm.newQuery("SELECT FROM " + ProductXML.class.getName()); + List products = (List) q.execute(); + Iterator iter = products.iterator(); + while (iter.hasNext()) { + ProductXML p = iter.next(); + LOGGER.log(Level.WARNING, "Product name: {0} - Price: {1}", new Object[] { p.getName(), p.getPrice() }); + pm.deletePersistent(p); + } + LOGGER.log(Level.INFO, "--------------------------------------------------------------"); + tx.commit(); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + + pm.close(); + } + } } \ No newline at end of file diff --git a/libraries/src/main/java/com/baeldung/jdo/ProductXML.java b/libraries/src/main/java/com/baeldung/jdo/ProductXML.java new file mode 100644 index 0000000000..d702a8ac90 --- /dev/null +++ b/libraries/src/main/java/com/baeldung/jdo/ProductXML.java @@ -0,0 +1,44 @@ +package com.baeldung.jdo; + +import javax.jdo.annotations.PersistenceCapable; +import javax.jdo.annotations.PrimaryKey; +import javax.xml.bind.annotation.XmlAttribute; + +@PersistenceCapable() +public class ProductXML { + + @XmlAttribute + private long productNumber = 0; + @PrimaryKey + private String name = null; + private Double price = 0.0; + + public ProductXML() { + this.productNumber = 0; + this.name = null; + this.price = 0.0; + } + + public ProductXML(long productNumber, String name, Double price) { + this.productNumber = productNumber; + this.name = name; + this.price = price; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + +} \ No newline at end of file