您的位置:首页 > 数据库

jpa动态创建EntityManagerFactory 态设置数据库连接 EntityManager;

2013-12-10 12:42 1371 查看
//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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐