hibernate可以跨数据库吗

hibernate可以跨数据库吗,第1张

首先来说,跨数据库肯定是可以的!

通常有两个方法,第一个是笨办法,就是在配置项里定义两个数据源,并且这两个数据源分属于两个SessionFaction对象。并且在代码中也有创建两个dao对象分别对应两个数据库,这样做比较麻烦,代码会很繁琐,并且执行效率不一定高。

第二个办法是使用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)

数据库建同义词 ,可以不需要 跨数据库 这样插入的。

以下示例首次创建将在此后的示例中使用的同义词。

USE tempdb

GO

CREATE SYNONYM MyAddressType

FOR AdventureWorks.Person.AddressType

GO

以下示例将行插入到由 MyAddressType 同义词引用的基表。

USE tempdb

GO

INSERT INTO MyAddressType (Name)

VALUES ('Test')

GO


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9565152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存