();classesadd(Itemclass);
configput( HibernatePersistenceLOADED_CLASSES classes );
return config;
}
public void testEntityManager() { // 测试持久化数据操作 ()
Item item = new Item( Mouse Micro$oft mouse );
EntityManager em = emfcreateEntityManager();
emgetTransaction()begin();
empersist( item );
Systemoutprintln( ntains( item ) );
emgetTransaction(mit();
Systemoutprintln(ntains(item));
emgetTransaction()begin();
item = (Item) emcreateQuery( from Item where descr like M% )getSingleResult();
Systemoutprintln(itemgetDescr() + : + itemgetName());
itemsetDescr( Micro$oft wireless mouse );
emgetTransaction(mit();
Systemoutprintln(itemgetDescr() + : + itemgetName());
emclose();
closeEMF();
}
public void closeEMF() {
emfclose();
Systemoutprintln(EMF is closed);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Autogenerated method stub
new TestConfig()testEntityManager();
}
}
上面就是测试代码可以看到我们可以用不同的方法来创建 EntityManagerFactory 之所以有这么多方法是为了在不同的环境中使用的
(): 利用EjbConfiguration来建立EntityManagerFactory 她会在工程目录下寻找hibernateproperties 配置文件(hibernatecfgxml好像不可以大家可以试试看)然后根据配置信息来创建EntityManagerFactory
配置文件如下:
#Created by JInto wwwguhsoftwarede
#Sun Feb :: CST
hibernatecacheprovider_class=orghibernatecacheHashtableCacheProvider
hibernatecacheregion_prefix=hibernatetest
nnectiondriver_class=commysqljdbcDriver
nnectionpassword=
nnectionpool_size=
nnectionurl=jdbc\:mysql\://localhost/test
nnectionusername=root
hibernatedefault_batch_fetch_size=
hibernatedialect=orghibernatedialectMySQLDialect
hibernatehbmddlauto=update
hibernatejdbcbatch_versioned_data=true
hibernatejdbcuse_streams_for_binary=true
hibernatemax_fetch_depth=
hibernateorder_updates=true
hibernateproxoolpool_alias=pool
hibernatequerysubstitutions=true false yes Y no N
javaxpersistenceprovider=orghibernateejbHibernatePersistence
()文档上说利用Persistence可以创建的 但是我利用不同方法试了几下都不可以大家可以试试 如果你知道如何用 要记得告诉我哦 :)
() 利用HibernatePersistence来建立EntityManagerFactory 她可以利用一个properties 来创建 该properties 你可以随便创建 只有包含必要的配置信息就可以了 上面的代码中用了一个Map
(): 调用testEntityManager()方法 测试持久化数据操作
ok 到此一个简单的在JSE环境中使用EntityManger的介绍就结束了
后记:
在JSE环境中使用 Hibernate Core 和EntityManager 是差不多的 有没有必要使用EntityManager个人认为 使用EntityManager就是为了应付将来项目扩展的JEE容器中使用这样持久化部分实现很容易在JEE容器中实现只要利用JNDI得到EntityManagerFactory就可以了别的就没有什么改动了如果你的项目不在JEE中使用的话 没有必要用EntityManager