jpa动态创建EntityManagerFactory 态设置数据库连接 EntityManager;
//jpa动态创建EntityManagerFactory 态设置数据库连接EntityManager;createEntityManagerFactory(String persistenceUnitName, Map properties)方法中properties的参数将覆盖persistence.xml文件配置的参数。
Map<String, String> properties = new HashMap<String, String>();
properties.put("hibernate.connection.url","jdbc:sqlserver://localhost;DatabaseName=test");
properties.put("hibernate.connection.username","sa");
properties.put("hibernate.connection.password","1234");
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpaper", properties);
EntityManager em=emf.createEntityManager();
======persistence.xml=============================
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<!--定义持久单元 -->
<persistence-unit name="jpaper"
transaction-type="RESOURCE_LOCAL">
<!--这里采用Hibernate提供的持久化类 -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!--定义持久化属性 -->
<properties>
<!--定义方言、fetch深度、是否显示sql -->
<property name="hibernate.dialect" value="org.hibernate.dialect.SybaseDialect" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.show_sql" value="true" />
<!--定义是否自动生成表,create表示每次加载都重新生成,update表示每次加载只是更新表 -->
<!-- <property name="hibernate.hbm2ddl.auto" value="update" /> -->
<!--定义数据库连接的相关属性 -->
<property name="hibernate.connection.driver_class"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="hibernate.connection.url"
value="jdbc:sqlserver://192.168.1.181;DatabaseName=smartbusiness" />
<!--定义数据库连接的用户名、密码等 -->
<property name="hibernate.connection.username" value="sa" />
<property name="hibernate.connection.password" value="1.0" />
</properties>
</persistence-unit>
</persistence>