首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA桌面应用程序

JPA桌面应用程序
EN

Stack Overflow用户
提问于 2013-01-18 19:36:24
回答 1查看 1.3K关注 0票数 2

我正在使用JPA开发Java SWING应用程序,我在使用JPA和Java方面获得了很多经验,但在这种情况下,我想在运行时修改'persistence.xml‘值。这可以在Java EE中使用JNDI在应用服务器上完成,但是在swing应用程序中,我没有找到任何解决方案

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

代码语言:javascript
复制
<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>

它的转播感谢任何人能帮上忙..谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 13:29:28

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

代码语言:javascript
复制
<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步为保留属性值创建映射}

代码语言:javascript
复制
 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();

    }

注意:- "JPAQueryPU“是持久性单元的名称

谢谢R+

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14398108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档