专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

SpringBoot整合Mybatis多数据源

  Mybatis中如何配置多数据源一什么情况下会用到多数据库?
  场景1:
  一个商城网站,一个游戏网站,商城网站已经做好,游戏网站正在开发,游戏网站上的很多道具需要用到商城网站的产品数据,这种情况最好是用两个数据库,商城网站更多的是设计直接交易,涉及金钱方面较多,需要较安全的数据库和网络环境,而游戏网站一般人流量比较大,若和商城放一起占用的数据库、网络、带宽资源较大,而且更容易被攻击,这样很容易影响商城的正常使用。而把他们独立开虽然可能成本稍高,但是能够保证其中一个网站或数据库挂掉不会影响另一个,大大降低安全风险。
  场景2:
  随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。
  MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。MySQL单表的数据量是500w1000w之间性能比较好,超过1000w性能也会下降。mysql的分库分表是在数据量大后的一个常用数据库优化方法。二多数据库需求解决方案
  对于海量数据来说,比如100亿条频繁查询的记录需要在3秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,首选分布式数据库中间件MyCat去解决分库分表的问题。
  但对于一些简单的需求,比如数据库量不大,只是用到不同的数据库,可以配置多数据源来解决。配置多数据源有两种方法:分包和AOP。
  本章给大家讲解的是分包方式,Aop方式和MyCat会在后续章节再讲解。三Mybatis中配置多数据源1。新建工程
  添加Mybatis,Mysql驱动,lombok依赖2。配置多数据源
  之前整合Mybatis时,我们配置了一个数据源DataSource,配置多个数据源,其实就是配置多个DataSource。
  首页准备两个数据库boot1,boot22。1application。properties中添加数据源数据源1spring。datasource。one。driverclassnamecom。mysql。jdbc。Driverspring。datasource。one。usernamerootspring。datasource。one。passwordrootspring。datasource。one。jdbcurljdbc:mysql:localhost:3306boot1?characterEncodingutf8serverTimezoneGMT2B8需要注意的是,springboot2。0以上配置双数据源,配置文件中不能写url,而是要改成jdbcurl,否则会出错。数据源2spring。datasource。two。driverclassnamecom。mysql。jdbc。Driverspring。datasource。two。usernamerootspring。datasource。two。passwordrootspring。datasource。two。jdbcurljdbc:mysql:localhost:3306boot2?characterEncodingutf8serverTimezoneGMT2B8这里通过one和two对数据源进行了区分,但是加了one和two之后,这里的配置就没法被SpringBoot自动加载了(因为前面的key变了),需要我们自己去加载DataSource了,此时,需要自己配置一个DataSourceConfig,用来提供两个DataSourceBean,如下:2。2创建DataSourceConfig文件ConfigurationpublicclassDataSourceConfig{BeanConfigurationProperties(prefixspring。datasource。one)DataSourcedsOne(){returnDataSourceBuilder。create()。build();}BeanConfigurationProperties(prefixspring。datasource。two)DataSourcedsTwo(){returnDataSourceBuilder。create()。build();}}这里提供了两个Bean,其中ConfigurationProperties是SpringBoot提供的类型安全的属性绑定,以第一个Bean为例,ConfigurationProperties(prefixspring。datasource。one)表示使用spring。datasource。one前缀的数据库配置去创建一个DataSource,这样配置之后,我们就有了两个不同的DataSource,接下来再用这两个不同的DataSource去创建两个不同的SqlSessionFactory。2。3创建两个Mybatis配置文件类
  Mybatis配置文件类1:ConfigurationMapperScan(basePackagescom。test。multidatasource。mapper1,sqlSessionTemplateRefsqlSessionTemplate1)publicclassMyBatisConfigOne{Resource(namedsOne)DataSourcedsOne;BeanSqlSessionFactorysqlSessionFactory1(){SqlSessionFactorysessionFactorynull;try{SqlSessionFactoryBeanbeannewSqlSessionFactoryBean();bean。setDataSource(dsOne);bean。setTypeAliasesPackage(com。test。multidatasource。pojo);sessionFactorybean。getObject();}catch(Exceptione){e。printStackTrace();}returnsessionFactory;}BeanSqlSessionTemplatesqlSessionTemplate1(){returnnewSqlSessionTemplate(sqlSessionFactory1());}}创建MyBatisConfigOne类,首先指明该类是一个配置类,配置类中要扫描的包是com。test。ssm。mapper1,即该包下的Mapper接口将操作dsOne中的数据,对应的SqlSessionFactory和SqlSessionTemplate分别是sqlSessionFactory1和sqlSessionTemplate1,在MyBatisConfigOne内部,分别提供SqlSessionFactory和SqlSessionTemplate即可,SqlSessionFactory根据dsOne创建,然后再根据创建好的SqlSessionFactory创建一个SqlSessionTemplate。
  Mybatis配置文件类2:ConfigurationMapperScan(basePackagescom。test。multidatasource。mapper2,sqlSessionTemplateRefsqlSessionTemplate2)publicclassMyBatisConfigTwo{Resource(namedsTwo)DataSourcedsTwo;BeanSqlSessionFactorysqlSessionFactory2(){SqlSessionFactorysessionFactorynull;try{SqlSessionFactoryBeanbeannewSqlSessionFactoryBean();bean。setDataSource(dsTwo);bean。setTypeAliasesPackage(com。test。multidatasource。pojo);sessionFactorybean。getObject();}catch(Exceptione){e。printStackTrace();}returnsessionFactory;}BeanSqlSessionTemplatesqlSessionTemplate2(){returnnewSqlSessionTemplate(sqlSessionFactory2());}}这样MyBatis多数据源基本上就配置好了,接下来只需要在com。test。multidatasource。mapper1和com。test。multidatasource。mapper2包中提供不同的Mapper,Service中注入不同的Mapper就可以操作不同的数据源。
  3。创建Mapper层
  com。test。multidatasource。mapper1包下创建publicinterfaceUserMapperOne{ListUserselectUsers();}
  对应的Mapper。xml文件!DOCTYPEmapperPUBLICmybatis。orgDTDMapper3。0ENhttp:mybatis。orgdtdmybatis3mapper。dtdmappernamespaceorg。javaboy。mybatis。mapper1。UserMapperOneselectidselectUsersresultTypecom。test。multidatasource。pojo。Usersselectfromusers;selectmapper
  com。test。multidatasource。mapper2包下创建publicinterfaceUserMapperTwo{ListUserselectGoods();}
  对应的Mapper。xml文件:!DOCTYPEmapperPUBLICmybatis。orgDTDMapper3。0ENhttp:mybatis。orgdtdmybatis3mapper。dtdmappernamespaceorg。javaboy。mybatis。mapper2。UserMapperTwoselectidselectGoodsresultTypecom。test。multidatasource。pojo。Goodsselectfromgoods;selectmapper2。4pom。xml文件中添加resourcesresourcedirectorysrcmainjavadirectoryincludesinclude。xmlincludeincludesresourceresourcedirectorysrcmainresourcesdirectoryresourceresources3。创建pojo,service层,controller层测试

为什么今年全运会湖南比往年更出成绩?湖南派去奥运会的大部分都拿了奖牌!16个选手参加东京奥运会10个人拿了奖牌,这些人回到全运会基本上再拿金牌,有的不止一块。湖南连续几年都在申办全运会,这几年应该加大了投入。湖南在全谁称得上泉州历史十大名人?泉州历史十大名人有明末清初驱逐荷夷,收复台湾的民族英雄郑成功,明代抗倭名将集军事事家武术家诗人一身的俞大猷,有明代思想家文学家泰州学派一代宗师李贽,有明代清官贤相李廷机,有泉州科举你家乡被黑的最惨的时候是什么事?黑东北!气不打一处来!!!1。大金链子小手表一天三顿小烧烤(烧烤最早下午五点开店出摊,上你家一天吃三顿去?大金链子小手表,这造型是黑人嘻哈!尤其网上说,锅盖头,豆豆鞋,紧身裤是东北想辞职不好意思开口怎么办?连辞职都觉得不好意思,题主肯定是个情感细腻懂得感恩的人。我觉得如果题主真的已经决定辞职,还是尽快按规定提前向公司提出为上,这对双方都有好处。之所以不好意思,还是辞职的信念尚且不够强江疏影和马思纯相比较,你觉得谁更性感?谢谢头条朋友邀请!很不意思这两天工作较忙,所以晚了几天回答!江疏影和马思纯这两位演员,球球还是蛮喜欢她们的作品,但是要说到性感嘛!实话说,性感在球球眼里可能更多时候体现在身材上,而内马尔离开巴萨另立山头,成就能否超越梅西?这个夏天,国际足坛最大的焦点无疑就是内马尔转会事件。北京时间今天凌晨,这笔传闻了近一个月的闹剧终于以内马尔离开收场。巴萨官方宣布内马尔缴纳违约金,目前已经离开俱乐部。预计下周一,巴孩子没有考好,进不了实验班,我该怎么办?家长,严重了。你孩子没考进实验班,怕不适应普通班的学习,就以泪洗面,寝食难安,这太不值了吧。这样一次考试的失败,并不代表以后的考试就会考得差,也并不代表进入普通班以后高考就考得差。孩子到了语言敏感期,天天鹦鹉学舌,家长如何应对?同样是语言习得,为什么孩子的语言学习能力远远强过大人?1996年,美国科学家在自然科学杂志社上发现了他们的研究成果,他们利用核磁扫描技术对大脑进行研究,证实了在人的大脑中有一个专门快手属于哪个公司的?发展潜力怎么样?2017年3月23日,快手宣布完成新一轮3。5亿美元的融资,由腾讯领投。此前,快手还曾获得过百度的投资。这究竟是家什么样的公司?为何能让BAT中的两家巨头百度和腾讯同时看上?先来看被半个乐坛围攻的刀郎,同时得罪汪峰那英杨坤,他做错了什么?错在他是一个远离京圈的,自由的,非主流的,草根阶层的流浪音乐人。那些混迹在北京音乐圈的,自诩为正统的科班出身的音乐人,却利用在音乐上的名气地位打群架压制诋毁刀郎的音乐成就,是音乐界现在在用gtx1070有必要上rx5700xt吗,准备换了玩荒野大镖客2?荒野大镖客2对电脑配置要求还是很高的,尽管推荐配置只是GTX1060显卡,但是这恐怕只是中等画质下保持大约60帧的配置需求,如果是想开高画质的话,1080p分辨率流畅玩至少需要一块
理财类风光不再借贷类劣迹斑斑!互联网金融发展现状调查当前,现象级游戏羊了个羊火遍全网。与它一同火起来的还有安逸花拍拍贷众安小贷度小满熊猫金控等网络借贷广告。为此,有网友在社交媒体上吐槽第二关怎么玩都过不了,但已经会背众安小贷和安逸花拜仁官方CFO德雷森明夏约满后离任,监事会成员迪德里希接任直播吧9月29日讯当地时间本周四,拜仁官方宣布了拜仁慕尼黑足球俱乐部股份公司的高层人事变动,任职多年的CFO德雷森将在明夏合约期满后离任。拜仁官方表示,首席财务官董事会副主席德雷森房屋抵押贷款中,被忽略的还款方式,甚至比利率都重要在房屋抵押贷款中,常见的还款方式有两种。一是先息后本,二是等额本息。但在实际借贷中,银行为了降低坏账的风险,往往会在这两种还款方式上做一些额外的约定。根据抵押贷款年限的不同,小二将心脏支架后能活几年?和你实话实说想要寿命不受干扰,做好3点公司高管老张在上班时间突然昏迷,随后送去医院抢救,经医院诊断,被确诊为心梗,当时就下达了病危通知书,让老张马上住院进行支架手术,否则以后可能再次昏迷,甚至死亡。但是老张觉得那是坑人理响中国推动新时代改革开放走得更稳走得更远走进位于上海浦东的外高桥综合服务大厅,曾经的封闭式柜台已变成开放式工位,让办事交流更加便捷。九年前,全国首个自贸区在这里应运而生,一场聚焦制度创新的国家试验就此启航。最早设立外商投医疗行业见底了,80万散户恒瑞医药恒瑞和迈瑞,医疗双巨头大涨!这是否标志着医药行业否极泰来?为期一个季度的反弹没有问题!但明年还得继续跌!医药医疗行业十大龙头迈瑞医疗恒瑞医药药明康德爱尔眼科片仔癀联影医疗智飞生物万基德麦基有3枚戒指可成年轻人的榜样他和东契奇会建立起联系直播吧9月29日讯独行侠主帅基德本周接受采访时表示,他认为麦基的到来对球队能够产生积极影响。基德认为麦基擅长挡拆顺下,会与东契奇相得益彰麦基是个很擅长挡拆的家伙,我认为随着时间推移2022年全球创新指数报告发布中国排名继续上升当地时间9月29日,总部位于瑞士日内瓦的世界知识产权组织发布2022年全球创新指数报告。中国继续攀升,位列11名。瑞士美国瑞典英国和荷兰位列前五,新兴经济体保持强劲表现。报告显示,这两年,你买到的可能是质量最差的房子写在前面你买房了吗?如果没买,今天的文章对你一定有帮助,如果买了,但没交房,那今天的文章对你可能会有心理上的伤害,请酌情阅读。9月26日,媒体报道,融创一笔40亿的债券(PR融创0查询各部门中年龄最大的2个人一表结构CREATETABLEusers(idint(11)NOTNULLAUTOINCREMENT,usernamevarchar(255)CHARACTERSETutf8mb4绵阳精准定位谋发展壮大总量提质效奋力谱写工业经济高质量发展新篇章党的十八大以来,绵阳紧紧围绕工业经济高质量发展,深入推进工业强市制造强市产业强市建设,建立完善工业经济发展思路举措和工作机制,加快发展先进制造业,着力推动绵阳工业经济优化产业结构提
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网