?? manager.java
字號:
package iks.ethz.jpoxdemo.plain;
import java.util.Collection;
import java.util.Iterator;
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.Extent;
import javax.jdo.Query;
import javax.jdo.JDOHelper;
import javax.jdo.Transaction;
/**
* Main class that is going to implement the logic for the application
* @author ionut
*
*/
public class Manager {
public static void persistObjects(PersistenceManager pm)
{
Transaction tx=pm.currentTransaction();
try
{
tx.begin();
Product product = new Product("Sony Discman","A standard discman from Sony",200.00);
Book book = new Book("Lord of the Rings by Tolkien","The classic story",49.99,"JRR Tolkien", "12345678", "MyBooks Factory");
pm.makePersistent(product);
pm.makePersistent(book);
tx.commit();
System.out.println("Product and Book have been persisted");
}
finally
{
if (tx.isActive())
{
tx.rollback();
}
}
}
public static Collection<Product> getPersistedProducts(PersistenceManager pm){
Transaction tx=pm.currentTransaction();
try{
tx.begin();
Extent<Product> prod = pm.getExtent(iks.ethz.jpoxdemo.plain.Product.class);
//Query query = pm.newQuery(prod, "price > 0.3");
Query query = pm.newQuery(prod);
query.setOrdering("price ascending");
Collection<Product> pColl = (Collection<iks.ethz.jpoxdemo.plain.Product>) query.execute();
tx.commit();
return pColl;
}
finally{
if(tx.isActive()){
tx.rollback();
return null;
}
}
}
public static void updatePersisted(PersistenceManager pm){
Collection<Product> updColl = getPersistedProducts(pm);
Iterator<Product> pIterator = updColl.iterator();
Transaction tx=pm.currentTransaction();
try{
tx.begin();
while(pIterator.hasNext()){
Product currProd = pIterator.next();
System.out.println(currProd.description + "|"+ currProd.name +"|"+currProd.price);
currProd.setPrice(currProd.price*1.1);
}
tx.commit();
}
finally{
if(tx.isActive()){
tx.rollback();
}
}
}
public static void deletePersisted(PersistenceManager pm){
Collection<Product> updColl = getPersistedProducts(pm);
Iterator<Product> pIterator = updColl.iterator();
Transaction tx=pm.currentTransaction();
try{
tx.begin();
while(pIterator.hasNext()){
Product currProd = pIterator.next();
System.out.println(currProd.description + "|"+ currProd.name +"|"+currProd.price);
pm.deletePersistent(currProd);
}
tx.commit();
}
finally{
if(tx.isActive()){
tx.rollback();
}
}
}
public static void showProducts(Collection<Product> pColl){
System.out.println("==Showing Products==");
Iterator<Product > pIterator = pColl.iterator();
while(pIterator.hasNext()){
Product currProd = pIterator.next();
System.out.println(currProd.description + "|"+ currProd.name +"|"+currProd.price);
}
}
public static void main (String[] args)
{
// Create a PersistenceManagerFactory for this datastore
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("jpox.properties");
System.out.println("JPOX Tutorial with JDO");
System.out.println("======================");
// Persistence of a Product and a Book.
PersistenceManager pm = pmf.getPersistenceManager();
System.out.println("--==Persisting Products==--");
persistObjects(pm);
showProducts(getPersistedProducts(pm));
System.out.println("--==Update Product price(add 10 to each product price) ==--");
updatePersisted(pm);
showProducts(getPersistedProducts(pm));
System.out.println("--==Delete Persisted Products==--");
deletePersisted(pm);
showProducts(getPersistedProducts(pm));
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -