关键词不能为空

当前您在: 主页 > 英语 >

Hibernate+Spring多数据库解决方案

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-29 23:41
tags:

-

2021年1月29日发(作者:贾格)


Hibernate


+Spring


多数据库解 决方案




我以前在项目中的探索和实践,写出来与大家分享。



大家有其他好的方式,也


欢迎分享。




环境:


JDK


1.4.x


,


Hibernate


3.1,


Spring


2.0.6,


JBOSS4.0,


开发模式


:


Service


+ DAO





我们项目中需要同时使用多个数据库


.



Hibernate


不能直接支 持,为此我们


对比了网上网友的方案,自己做了一点探索。




1. Demo


需求




我们的项目使用一个全省的公共库加十多个地市库的架构。


< /p>


本文主要说


明原理,将需求简化为两库模型。



主库:


User


管里,主要是系统管理,鉴权等数据;




订单库:


Order


管理,存放订单等业务性数据。




2.


原理:



1



Hibernate


的每个配置文件对应一个数据库,


因此多 库需要做多个配


置文件。本文以两个为例:




主库


hibernate_





订单库


hibernate_




每个库,


Hibernate


对应一个


sessionFactory

< br>实例,因此


Hibernate


下的多库处理,就是在多 个


sessionFactory


之间做好路由。




2) sessionFactory


有个


ssMetadata(voClass)


方法,返回值不为空时,表示该


VO


类在该库中



(< /p>


文件配置在了对应的



< br>)




该方法是数


据路由的核心和关键所在。




因此,



配置在


hibernate_




Order


数据位于配置到


hibernate_



3




多库处理时,需要使用


XA


事务管理。本例中使用


Jboss4.0

< br>来做


JTA


事务管理;用


JOT M


,其他应用服务器原理相同。




3.


实现



1




为做多


sessionFactory


实例的管理,设计


SessionFactoryManager


类,功能就是做数据路由,




控制路由的核心是


sessionFactoryMap


属性,它按



dbFlag=sessionFactory


的方式存储了多个库的



引用。





判断路由要使用的核心方法就是



public


Session


getSessionFactory(Class


voClass)


,它根据传入的



voClass


,返回对应


sessi onFactory




当前


session





SessionFactoryManager


类的详细实现原理以后为大家说明。




2



Hibernate


配置





主库


hibernate_


Xml


代码




1.






2.




3.






name


=



>


XAOracl eDS_MAIN



ty>


4.






name


=



>


hiberna te1



operty>



5.






name


=



>



nsactionFactory



6.






name


=



>


at

< p>
ransactionManagerLookup




7.






name


=



>


UserTransaction


>



8.




9.






name


=



>


Dialect



property>

< p>


10.




name


=



>


5




11.




name


=



>


5




12.




name


=



>


1




13.


14.



< p>
resource


=




/>




15.







订单库


hibernate_



Xml


代码




1.




2.





3.






name


=



>


XAOracleDS_ORDER



perty>



4.






name


=



>


hibernate2



property>



5.






name


=



>



nsactionFactory




6.






name


=



>



ransactionManagerLookup



7.






name


=



>


UserTra nsaction



ty>


8.




9.






name


=



>


Dialect




10.



< /p>


name


=



>< /p>


5




11.




name


=



>


5




12.




name


=



>


1




13.


14.




resource


=




/


>



15.






3) Spring


配置




使用


Spring

< p>
提供的



essionFactoryBean


类,为每个


库配置一个


session Factory bean





Xml


代码




1.




11.




id


=




class


=



.e ssionFactoryBean


>



12.




name


=



>



13.




14.



classpath:hibernate_< /p>



-


-


-


-


-


-


-


-



本文更新与2021-01-29 23:41,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/587910.html

Hibernate+Spring多数据库解决方案的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文