我正在开发一个程序,以测试如何使用Java中的Derby。
问题在于我无法将IDE中的数据添加到数据库中,因为在运行程序之后。数据未反映在数据库上。
看我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="DBExamplePU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>exampleDB.sql.Provincia</class>
<class>exampleDB.sql.Persona</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:derby:example;create=true"/>
<property name="javax.persistence.jdbc.user" value="APP"/>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="javax.persistence.jdbc.password" value="1234"/>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
这是我要插入新数据的代码:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("DBExamplePU"); // Comprobar nombre de la PU
EntityManager em = emf.createEntityManager();
// OPERACIONES DE BD
Provincia provinciaCadiz = new Provincia(0, "Cádiz");
Provincia provinciaSevilla = new Provincia();
provinciaSevilla.setNombre("Sevilla");
em.getTransaction().begin();
em.persist(provinciaCadiz);
em.persist(provinciaSevilla);
em.getTransaction().commit();
em.close();
emf.close();
try {
DriverManager.getConnection("jdbc:derby:DBExamplePU;shutdown=true");
} catch (SQLException ex) {
}
在平台netbeans IDE中,数据未反映在数据库中,但是当我运行此命令时:
List<Provincia> listProvincias = queryProvincias.getResultList();
for(int i=0; i<listProvincias.size(); i++) {
Provincia provincia = listProvincias.get(i);
System.out.println(provincia.getNombre());
}
它可以正确显示数据!。
就像我在代码中使用的数据库与之前创建的数据库不同。
希望可以帮助我,谢谢!。