我无法使用javaDB将新数据插入数据库

时间:2019-12-11 19:41:56

标签: java database netbeans derby

我正在开发一个程序,以测试如何使用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());
    }

它可以正确显示数据!。

就像我在代码中使用的数据库与之前创建的数据库不同。

希望可以帮助我,谢谢!。

0 个答案:

没有答案