⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manager.java

📁 jdo 例子使用PrismTech类库 初步入门级使用 学习Java Data Objects的好例子
💻 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 + -