您的位置:首页 > 数据库

hibernate连接多个数据库?----其实什么也不用担心

2007-12-12 17:52 435 查看
实际工作应用中,经常要和多个数据库打交道. (偶说的是同一个Sqlserver数据库服务器上的多个数据库,可不是跨平台,异种数据库 :(( )
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=?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: