JDOHelper
这一节我们主要讲述JDOHelper这个助手类中的方法,下面的表格列出了JDOHelper中几个常用的方法,如果你想详细的了解JDOHelper所有的方法可以参考JavaDoc文档中的定义。
JDOHelper
static void makeDirty(Object pc ,String field)
static Object getObjectId(Object pc)
static PresistenceManager getPersistenceManager(Object pc)
static boolean isDirty(Object pc)
static boolean isTransactional(Object pc)
static boolean isPersistent(Object pc)
static boolean isNew(Object pc)
static boolean isDelete(Object pc)
static PersistenceManagerFactory getPersistenceManagerFactory(Properties props)
JDOHelper主要进行3个类型的操作:
1、 对象的持久化操作
2、 对象生命周期的操作
3、 创建PersistenceManagerFactory对象。
下面我将一一讲述这3个操作的过程:
1、 对象持久化操作
对象持久化操作要使用到3个方法:makeDirty,getObjectId和getPersistenceManager。其中makedirty(Object pc,String field)方法是在你操作一个持久化对象的数组字段时使用的,你只要调用这个方法传入要操作的持久化对象,和已经改变了值的字段就会通知JDO实现,你已经修改了字段的值,可以把新的值保存到数据库中了。getObjectId用户比较持久化对象的一致性,如果传入的参数对象与当前比较的持久化对象不是同一个对象这个方法将返回null值。最后一个方法会得到一个PersistenceManager对象。
2、 对象生命周期操作
public static boolean isDirty (Object pc);
public static boolean isTransactional (Object pc);
public static boolean isPersistent (Object pc);
public static boolean isNew (Object pc);
public static boolean isDeleted (Object pc);
上面列出的几个方法是对一个持久化对象状态的判断,这些状态的判断是JDO实现进行的,你根本不用操心。
3、 创建PersistenceManagerFactory对象
public static PersistenceManagerFactory getPersistenceManagerFactory (Properties props);
你可以通过JDOHelper的getPersistenceManagerFactory方法来获得PersistenceManagerFactory对象,这个方法只有一个参数,是一个java.util.Properties对象。在使用之前你要先设置这个Properties对象的实例。通过调用getPersistenceManagerFactory方法JDO实现会创建一个PersistenceManagerFactory对象或者是一个池化的包含很多PersistenceManagerFactory的实例池。下面我给出一个获得PersistenceManagerFactory的例子:
// properties 通常来自于一个文件
Properties props = new Properties ();
// 这个property参数告诉JDOHelper将产生什么样的PMFactory
props.setProperty ("javax.jdo.PersistenceManagerFactoryClass",
"kodo.jdbc.runtime.JDBCPersistenceManagerFactory");
// 项目的方法定义了 persistence managers 的缺省设置
props.setProperty ("javax.jdo.option.Optimistic", "true");
props.setProperty ("javax.jdo.option.RetainValues", "true");
//下面是设置有关数据库信息的,包括用户名、密码、驱动、连接
props.setProperty ("javax.jdo.option.ConnectionUserName", "solarmetric");//
props.setProperty ("javax.jdo.option.ConnectionPassword", "kodo");//
props.setProperty ("javax.jdo.option.ConnectionURL", "jdbc:hsql:database");//
props.setProperty ("javax.jdo.option.ConnectionDriverName", //
"org.hsqldb.jdbcDriver");
//获得一个pmfactory对象。
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory (props);