hibernate.cfg.xml通常在這個時候指定一個數據庫,也就是:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<!--數據庫連接池-->
... 略
<!--數據庫 -->
<property name="connection.username">sa</property>
<property name="connection.url">
jdbc:sqlserver://127.0.0.1:1433;databaseName=MyDatabaseName;SelectMethod=cursor;
...
然後就是反向映射.
那位說,我現在不僅要連接MyDatabaseName,而且還要訪問另一個數據庫AnotherDatabase,咋辦?
該咋辦還咋辦,一點也不用擔心.
依舊使用hibernage 反向工程嚮導,建立另一個庫的連接,選定你要訪問的表,生成OR Mapping,POJO,DAO等.
結束了....就是這樣....
其實,稍微注意一下就會發現,映射文件已經變爲這樣了:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="com.My.POJO.TUser" table="T_User" schema="dbo" catalog="AnotherDatabase">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="identity" />
</id>
<property name="name" type="java.lang.String">
<column name="Name" length="10" not-null="true" />
</property>
... ...
在這裏catalog對應數據庫名,schema對應數據庫擁有者dbo.hibernate 生成最終SQL語句時,自動在表名前加上
AnotherDatabase.dbo.
比如,HQL寫成: "From TUser WHERE UId=?"
那麼最終SQL就是 select xxxxxx from AnotherDatabase.dbo.T_User where U_Id=?