Swing JPA桌面应用程序
我正在使用JPA开发一个Java SWING应用程序,我在使用Java EE开发JPA方面有很多经验, 但在本例中,我希望在运行时修改“persistence.xml”值。这可以在JavaEE中使用应用服务器上的JNDI来完成,但在swing应用程序中,我并没有找到任何解决方案 注意:persistence.xml包含以下属性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
<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文件中。