<?xml version="1.0" encoding="UTF-8"?> <jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_2_3.xsd"> <persistence-manager-factory name="myjdo"> <property name="javax.jdo.PersistenceManagerFactoryClass" value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/> <property name="javax.jdo.option.ConnectionURL" value="jdbc:mysql://localhost:3306/mydb"/> <property name="javax.jdo.option.ConnectionDriverName" value="com.mysql.jdbc.Driver"/> <property name="javax.jdo.option.ConnectionUserName" value="username"/> <property name="javax.jdo.option.ConnectionPassword" value="password"/> <property name="javax.jdo.option.RetainValues" value="true"/> <property name="datanucleus.schema.autoCreateAll" value="true" /> </persistence-manager-factory> </jdoconfig> public class Person { private String name; private int age; } import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; @PersistenceCapable public class PersonJDO { @PrimaryKey @Persistent private String name; @Persistent private int age; } public void savePerson(PersonJDO person) { PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("myjdo"); PersistenceManager pm = pmf.getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { tx.begin(); pm.makePersistent(person); tx.commit(); } finally { if (tx.isActive()) { tx.rollback(); } pm.close(); } } public List<PersonJDO> getPersonsByName(String name) { PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("myjdo"); PersistenceManager pm = pmf.getPersistenceManager(); Query query = pm.newQuery(PersonJDO.class, "name == :name"); return (List<PersonJDO>) query.execute(name); } public void updatePersonAge(String name, int age) { PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("myjdo"); PersistenceManager pm = pmf.getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { tx.begin(); Query query = pm.newQuery(PersonJDO.class, "name == :name"); List<PersonJDO> persons = (List<PersonJDO>) query.execute(name); for (PersonJDO person : persons) { person.setAge(age); } tx.commit(); } finally { if (tx.isActive()) { tx.rollback(); } pm.close(); } } public void deletePerson(String name) { PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("myjdo"); PersistenceManager pm = pmf.getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { tx.begin(); Query query = pm.newQuery(PersonJDO.class, "name == :name"); List<PersonJDO> persons = (List<PersonJDO>) query.execute(name); for (PersonJDO person : persons) { pm.deletePersistent(person); } tx.commit(); } finally { if (tx.isActive()) { tx.rollback(); } pm.close(); } }


上一篇:
下一篇:
切换中文