<?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();
}
}