通常有两个方法,第一个是笨办法,就是在配置项里定义两个数据源,并且这两个数据源分属于两个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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)