Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swing JPA桌面应用程序_Swing_Jpa_Jndi - Fatal编程技术网

Swing JPA桌面应用程序

Swing JPA桌面应用程序,swing,jpa,jndi,Swing,Jpa,Jndi,我正在使用JPA开发一个Java SWING应用程序,我在使用Java EE开发JPA方面有很多经验, 但在本例中,我希望在运行时修改“persistence.xml”值。这可以在JavaEE中使用应用服务器上的JNDI来完成,但在swing应用程序中,我并没有找到任何解决方案 注意:persistence.xml包含以下属性 <properties> <property name="javax.persistence.jdbc.url" value="jdbc:mysql

我正在使用JPA开发一个Java SWING应用程序,我在使用Java EE开发JPA方面有很多经验, 但在本例中,我希望在运行时修改“persistence.xml”值。这可以在JavaEE中使用应用服务器上的JNDI来完成,但在swing应用程序中,我并没有找到任何解决方案

注意:persistence.xml包含以下属性

<properties>
  <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/adlbprod?zeroDateTimeBehavior=convertToNull"/>
  <property name="javax.persistence.jdbc.password" value="123"/>
  <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
  <property name="javax.persistence.jdbc.user" value="root"/>
  <property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>

很感谢任何人都能帮上忙。。 谢谢

谢谢大家, 我找到了答案。如何在运行时修改属性 {步骤1删除要动态加载的属性}

<properties>
  <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/adlbprod?zeroDateTimeBehavior=convertToNull"/>
  <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
</properties>

{步骤2为holds属性值创建映射}

 Map pmap = new HashMap();
    pmap.put("javax.persistence.jdbc.password", "123");
    pmap.put("javax.persistence.jdbc.user", "root");
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("JPAQueryPU",pmap);

    try {

        EntityManager em = emf.createEntityManager(pmap);
        Map<String, Object> properties = emf.getProperties();
        System.out.println("pro"+properties);


        Batch ct = new Batch();
        EntityTransaction transaction = em.getTransaction();
        transaction.begin();
        ct.setDescription("Test Batch");

        em.persist(ct);
        transaction.commit();


    } catch (Exception e) {
        e.printStackTrace();

    }
Map pmap=newhashmap();
put(“javax.persistence.jdbc.password”,“123”);
put(“javax.persistence.jdbc.user”,“root”);
EntityManagerFactory emf=Persistence.createEntityManagerFactory(“JPAQueryPU”,pmap);
试一试{
EntityManager em=emf.createEntityManager(pmap);
Map properties=emf.getProperties();
System.out.println(“pro”+属性);
批次ct=新批次();
EntityTransaction=em.getTransaction();
transaction.begin();
ct.setDescription(“试验批次”);
em.ct;
commit();
}捕获(例外e){
e、 printStackTrace();
}
注意:-“JPAQueryPU”是持久化单元的名称


感谢R+

这不是一个真正的swing问题-基本上,您需要了解如何在没有应用程序服务器的情况下执行此操作。新添加的属性值可以加载到外部XML文件中。