hibernate兩個資料庫
① hibernate映射文件怎樣配置倆個以上數據源
<!--SessionFactory配置-->
<session-factory>
指定資料庫使用的sql方言。盡管多數關系資料庫都支持標準的SQL語言,但是筆者建議在此指定自己的SQL方言。
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
指定連接資料庫用的驅動,對於不同的關系資料庫,其驅動是不同的,需要根據實際情況修改。
<property name="connection.driver_class">
com.microsoft.jdbc.sqlserver.SQLServerDriver
</property>
指定連接資料庫的路徑,對於不同的關系資料庫,其URL路徑是不同的,需要根據實際情況修改。
<property name="connection.url">
jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=資料庫名
</property>
指定連接資料庫的用戶名。
<property name="connection.username">用戶名</property>
指定連接資料庫的密碼;如果密碼為空,則在「密碼」的位置不寫任何字元。
<property name="connection.password">密碼</property>
指定當程序運行時是否在控制台輸出SQL語句。當show_sql屬性為true時,表示在控制台輸出SQL語句,默認為false。建議在調試程序時設為true,發布程序之前再改為false,因為輸出SQL語句會影響程序的運行速度。
<property name="show_sql">true</property>
指定當程序運行時,是否按照標准格式在控制台上輸出SQL語句。當format_sql屬性為true時,表示按照標准格式在控制台上輸出SQL語句,默認為false。建議在調試程序時設為true,發布程序之前再改為false。該屬性只有當show_sql屬性為true時才有效。
<property name="format_sql">true</property>
指定當程序運行時,是否在SQL語句中輸出便於調試的注釋信息。當show_sql屬性為true時,表示輸出注釋信息,默認為false。建議在調試程序時設為true,發布程序之前再改為false。該屬性只有當show_sql屬性為true時才有效。
<property name="use_sql_comments">true</property>
指定持久化類映射文件的位置,由包名與映射文件組成,包名與映射文件之間用「/」分隔。
<mapping resource="com/BranchForm.hbm.xml"/>
</session-factory>
</hibernate-configuration>
在上面的配置文件hibernate.cfg.xml中,包含了一系列的屬性元素,Hibernate將根據這些屬性元素連接資料庫。
② springmvc spring hibernate 怎麼配置連接兩個資料庫
persistent.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="userPU" transaction-type="RESOURCE_LOCAL">
<!--jpa的提供者-->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<!--聲明資料庫連接的驅動-->
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<!--jdbc資料庫的連接地址-->
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/manager?characterEncoding=gbk"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="123456"/>
<!--配置方言-->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<!--激活查詢日誌功能-->
<property name="hibernate.show_sql" value="true"/>
<!--優雅地輸出Sql-->
<property name="hibernate.format_sql" value="true"/>
<!--添加一條解釋型標注-->
<property name="hibernate.use_sql_comments" value="false"/>
<!--配置如何根據java模型生成資料庫表結構,常用update,validate-->
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
applicationContext.xml配置
<!--第二步-->
<!--定義實體的工廠bean-->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.">
<property name="persistenceUnitName" value="userPU" />
<property name="persistenceXmlLocation" value="classpath:persistence.xml"></property>
</bean>
<!--第三步-->
<!--定義事務管理器-->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
③ hibernate可以跨資料庫嗎
首先來說,跨資料庫肯定是可以的!
通常有兩個方法,第一個是笨辦法,就是在配置項里定義兩個數據源,並且這兩個數據源分屬於兩個SessionFaction對象。並且在代碼中也有創建兩個對象分別對應兩個資料庫,這樣做比較麻煩,代碼會很繁瑣,並且執行效率不一定高。
第二個辦法是使用spring開源框架里提供的動態數據源,通過動態的載入,將兩個數據源信息載入到一個SessionnFacgtion對象中。方法一裡面提到的缺點在這里都能夠很好的解決。
大概步驟如下:
1.org.springframework.beans.factory.support.DefaultListableBeanF
actory獲得bean工廠,可以添加銷毀數據源;
2.org.springframework.beans.factory.support.BeanDefinitionBuilder動態創建bean,然後通過
DefaultListableBeanFactory.registerBeanDefinition(dsInfo.getId(), beanDefinitionBuilder.getBeanDefinition()); 注冊數據源事務
3.銷毀數據源
beanFactory.destroySingleton(tsId);
beanFactory.removeBeanDefinition(tsId);
④ 資料庫表在兩個資料庫中,怎麼進行hibernate映射呢
前提是你數據源配置正確.
映射文件中:
注意看class屬性:
name是你的model類(包名+類名)
table是你資料庫里的表名
catalog是你的資料庫名
<hibernate-mapping>
<class name="com.cwx.model.Xsb" table="XSB" schema="dbo" catalog="XSCJ">
......
</class>
</hibernate-mapping>
⑤ hibernate連接兩個不同的資料庫,連接信息分別寫在兩個Spring配置文件里,該怎麼讀這兩個Spring文件
在 applicationContext.xml裡面載入 <import resource="applicationContext-sql.xml"/>
在applicationContext-sql.xml裡面beans標記裡面多寫幾個Bean,分別用SQL Server資料庫和Oracle資料庫的驅動載入進去啊!首先確定兩個資料庫驅動必須有哦!
⑥ 用hibernate+struts開發的,在操作兩個資料庫時,執行保存操作時報錯,請高手指點下。
2011-04-15 09:15:44,265 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 0, SQLState: null
這里不是錯誤信息嗎?應該是你的SQL有問題吧? 建議你把你寫的SQL先拿到資料庫先執行下
⑦ Hibernate 怎樣 連接2個以上的資料庫
<class
name="entity.Person"
table="Person"
schema="dbo"
catalog="hibernate">
用catalog屬性設置是那個資料庫就可以拉
⑧ hibernate資料庫實現查詢兩個不同的資料庫
配置兩個數據源,將兩個sessionfactory注入到不同的兩個templete中,將兩個templete模板再注入到兩個中,一個調用模板的get方法取出A庫中的學號,根據學號,另一調用get方法取出b庫中的數據對象,然後操作A資料庫的調用sava或者savaorupdate插入到A庫,主要配置好hibernate+spring整合的配置文件