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=?
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=?
相关文章推荐
- 其实你什么都不用担心
- 其实你什么都不用担心
- 其实你什么都不用担心
- 万能的SqlHelper,麻麻再也不用担心用什么数据库了
- 其实你什么都不用担心,哈哈!
- Hibernate的catalog导致数据库连接与实际操作的库不一致
- 使用hibernate数据库连接不释放的问题
- Hibernate 不同数据库的连接及SQL方言
- Hibernate连接数据库超时设置
- 如何配置Hibernate连接oracle12c 的PDB和CDB数据库
- “深入浅出”是什么导致不能以操作系统用户身份连接到数据库
- Hibernate连接数据库
- Hibernate 连接数据库URL出错
- Hibernate 不同数据库的连接及SQL方言
- 数据库连接 什么是长短连接??
- Mac下intellij idea 连接数据库并利用hibernate反向生成实体类
- Spring+Hibernate下的数据库连接动态切换
- hibernate.properites文件,各数据库连接字符串
- hibernate不同数据库的连接及方言
- hibernate不同数据库的连接及方言