范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

SpringBoot整合Mybatis多数据源

  Mybatis中如何配置多数据源一 什么情况下会用到多数据库?
  场景1:
  一个商城网站,一个游戏网站,商城网站已经做好,游戏网站正在开发,游戏网站上的很多道具需要用到商城网站的产品数据,这种情况最好是用两个数据库,商城网站更多的是设计直接交易,涉及金钱方面较多,需要较安全的数据库和网络环境,而游戏网站一般人流量比较大,若和商城放一起占用的数据库、网络、带宽资源较大,而且更容易被攻击,这样很容易影响商城 的正常使用。而把他们独立开虽然可能成本稍高,但是能够保证其中一个网站或数据库挂掉不会影响另一个,大大降低安全风险。
  场景2:
  随着时间和业务的发展,数据库中的数据量增长是不可控的,库和表中的数据会越来越大,随之带来的是更高的磁盘、IO、系统开销,甚至性能上的瓶颈,而一台服务的资源终究是有限的,因此需要对数据库和表进行拆分,从而更好的提供数据服务。
  MySQL单库数据量在5000万以内性能比较好,超过阈值后性能会随着数据量的增大而变弱。MySQL单表的数据量是500w-1000w之间性能比较好,超过1000w性能也会下降。mysql的分库分表是在数据量大后的一个常用数据库优化方法。 二 多数据库需求解决方案
  对于海量数据来说,比如 100 亿条频繁查询的记录需要在 3 秒内查询出来结果,除了基于主键的查询,还可能存在范围查询或其他属性查询,首选分布式数据库中间件 MyCat 去解决分库分表的问题。
  但对于一些简单的需求,比如数据库量不大,只是用到不同的数据库,可以配置多数据源来解决。 配置多数据源有两种方法:分包和AOP。
  本章给大家讲解的是分包方式,Aop方式和MyCat会在后续章节再讲解。 三 Mybatis中配置多数据源1.新建工程
  添加Mybatis,Mysql驱动,lombok依赖 2.配置多数据源
  之前整合Mybatis时,我们配置了一个数据源DataSource,配置多个数据源,其实就是配置多个DataSource。
  首页准备两个数据库boot1,boot2 2.1 application.properties中添加数据源 #数据源1 spring.datasource.one.driver-class-name=com.mysql.jdbc.Driver spring.datasource.one.username=root spring.datasource.one.password=root spring.datasource.one.jdbc-url=jdbc:mysql://localhost:3306/boot1?characterEncoding=utf8&serverTimezone=GMT%2B8  #需要注意的是,springboot2.0以上配置双数据源,配置文件中不能写url,而是要改成jdbc-url,否则会出错。  #数据源2 spring.datasource.two.driver-class-name=com.mysql.jdbc.Driver spring.datasource.two.username=root spring.datasource.two.password=root spring.datasource.two.jdbc-url=jdbc:mysql://localhost:3306/boot2?characterEncoding=utf8&serverTimezone=GMT%2B8  这里通过 one 和 two 对数据源进行了区分,但是加了 one 和 two 之后,这里的配置就没法被 SpringBoot 自动加载了(因为前面的 key 变了),需要我们自己去加载 DataSource 了,此时,需要自己配置一个 DataSourceConfig,用来提供两个 DataSource Bean,如下: 2.2 创建DataSourceConfig文件@Configuration public class DataSourceConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.one") DataSource dsOne() { return DataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix = "spring.datasource.two") DataSource dsTwo() { return DataSourceBuilder.create().build(); } } 这里提供了两个 Bean,其中 @ConfigurationProperties 是 Spring Boot 提供的类型安全的属性绑定,以第一个Bean为例, @ConfigurationProperties(prefix = "spring.datasource.one") 表示使用 spring.datasource.one 前缀的数据库配置去创建一个 DataSource,这样配置之后,我们就有了两个不同的 DataSource,接下来再用这两个不同的 DataSource 去创建两个不同的 SqlSessionFactory 。 2.3 创建两个Mybatis配置文件类
  Mybatis配置文件类1: @Configuration @MapperScan(basePackages = "com.test.multidatasource.mapper1",sqlSessionTemplateRef = "sqlSessionTemplate1") public class MyBatisConfigOne { @Resource(name = "dsOne") DataSource dsOne; @Bean SqlSessionFactory sqlSessionFactory1() { SqlSessionFactory sessionFactory = null; try { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dsOne); bean.setTypeAliasesPackage("com.test.multidatasource.pojo"); sessionFactory = bean.getObject(); } catch (Exception e) { e.printStackTrace(); } return sessionFactory; } @Bean SqlSessionTemplate sqlSessionTemplate1() { return new SqlSessionTemplate(sqlSessionFactory1()); } } 创建 MyBatisConfigOne 类,首先指明该类是一个配置类,配置类中要扫描的包是 com.test.ssm.mapper1 ,即该包下的 Mapper 接口将操作 dsOne 中的数据,对应的 SqlSessionFactory 和 SqlSessionTemplate 分别是 sqlSessionFactory1 和 sqlSessionTemplate1,在 MyBatisConfigOne 内部,分别提供 SqlSessionFactory 和 SqlSessionTemplate 即可, SqlSessionFactory 根据 dsOne 创建,然后再根据创建好的SqlSessionFactory 创建一个 SqlSessionTemplate。
  Mybatis配置文件类2: @Configuration @MapperScan(basePackages = "com.test.multidatasource.mapper2",sqlSessionTemplateRef = "sqlSessionTemplate2") public class MyBatisConfigTwo { @Resource(name = "dsTwo") DataSource dsTwo; @Bean SqlSessionFactory sqlSessionFactory2() { SqlSessionFactory sessionFactory = null; try { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dsTwo); bean.setTypeAliasesPackage("com.test.multidatasource.pojo"); sessionFactory = bean.getObject(); } catch (Exception e) { e.printStackTrace(); } return sessionFactory; } @Bean SqlSessionTemplate sqlSessionTemplate2() { return new SqlSessionTemplate(sqlSessionFactory2()); } }  这样 MyBatis 多数据源基本上就配置好了,接下来只需要在 com.test.multidatasource.mapper1 和 com.test.multidatasource.mapper2  包中提供不同的 Mapper,Service 中注入不同的 Mapper 就可以操作不同的数据源。
  3.创建Mapper层
  com.test.multidatasource.mapper1 包下创建 public interface UserMapperOne { List selectUsers(); }
  对应的Mapper.xml文件    
  com.test.multidatasource.mapper2 包下创建 public interface UserMapperTwo{ List selectGoods(); }
  对应的Mapper.xml文件:     2.4 pom.xml文件中添加              src/main/java                      **/*.xml                            src/main/resources       3.创建pojo,service层,controller层测试

当王阳明的知行合一碰到了罗翔的知道跟做到存在鸿沟,会发生什么前言最近博主在读王阳明的传习录,读到里头一直强调的知行合一,当从字面上理解就是你知道的跟做到的是一样的,这没毛病吧某音上经常会出现罗翔老师的一句话人类无法跨越从知道到做到,他们之间克宫美向乌提供先进武器是在故意火上浇油据塔斯社1日报道,俄罗斯总统普京的发言人佩斯科夫说,莫斯科不相信乌克兰总统泽连斯基不拿美国提供的高机动性多管火箭炮系统攻打俄罗斯的承诺。报道称,在被问及克里姆林宫是否相信泽连斯基的一剪微弱的光,也要骄傲地捧出辉煌北京抗疫日记很喜欢李月亮老师在你要活成一束光这本书中写道的一段话你要活成一束光!光够亮,就福泽四方光微弱,就惠及身旁。这段时间,北京新冠肆虐,每天都在不断地增长,而且数字可观。前天八路军一个团到底多少人,未能全歼日军一个中队,原因竟是吃不饱在小说亮剑中,以李云龙为团长的八路军第386旅独立团,最少也有一千多名将士。最盛时,全团竟然发展到了八千人以上。而且,这支部队极其彪悍,曾经投入一个营就干掉了关东军的两个中队,也曾雍正王朝都没敢播的情节,邬思道一封密信,田文镜看了都后怕看过经典历史电视剧雍正王朝的朋友们都知道剧情里面邬思道堪称BUG级别的幕后操盘手,简直是当时的天下第一谋士。邬思道此人可以说是康熙皇帝四阿哥雍亲王胤禛在夺取皇位的过程当中的最大助力爆料汪小菲林俊杰迪丽热巴鹿晗,轰炸热搜,这个台湾狗仔是谁?汪小菲出轨的事情已经已经写了好几集了,没想到最后是台湾狗仔承包了一整夜的热搜,号称盘活内娱。先来介绍一下这位台湾狗仔葛斯齐,台湾号称亚洲跟拍一哥,后来可能自觉口气太大又改成了宝岛跟这浏览器能处,网页隐私保护是真的强哥真是被某浏览器给搞蒙了,事情是这样子的。作为漫威迷,一直想找时间好好看一下最新的电影,无奈前段时间发布会比较多特别忙,这几天总算闲下来有时间看了,然而就在我上浏览器搜素的时候问题美国借钱进口粮食,不惜亏本出口苏联,最后为何还说苏联会演戏1972年老美借钱进口粮食,不惜亏本卖给苏联,为啥最后说还是苏联会演戏呢?1972年,苏联粮食歉收,民不聊生,好巧不巧的是,当时只有老美有足够的粮食出口。苏联始终犹豫不决,难道真要1994年,安徽农村两兄弟突然得知父亲是特工,弟弟是巨星成龙1994年时,一对身在安徽农村的两位兄弟抱头痛哭,五十多岁的他们刚刚知道,原来自己同父异母的弟弟是国际巨星成龙。但为了不影响他的事业,父亲不允许他们去打扰弟弟。成龙一共有三个名字,安徽80后女大学生,卖掉父母房子,办学12年,7年生5娃惹争议有人说为了梦想可以放弃一切。80后的陆晓芳,就是这句话的忠实践行者。为了追梦,她不惜卖掉父母的房子。最终却在苦苦支撑12年之后,再也坚持不下去,无奈惨败收场。后来,她独自照顾5个孩四川省的区划变动,全省130多个县,为何分为了4个行署区?在之前的文章中,作者和大家聊了一系列关于四川省与周边各省区划变动的故事,例如四川省与贵州省四川省与云南省等等。今天,作者和大家聊聊建国初期,四川省被划分为4个行署区的故事。出于各方
3万亿板块急速拉升,这只龙头不到半小时封涨停!新能源车企销量暴增,超跌低估值股出炉数据是个宝数据宝炒股少烦恼新能源汽车成为不少车企的最大增长动力。汽车股午后急速拉升超跌股反弹最猛1月10日午后,汽车板块出现明显拉升。其中北汽蓝谷表现最为突出,该股由绿盘直接翻红,增值税,又变了!2023年1月起,开票申报交税要按这个来!税务总局连发两条公告和一条解读,彻底明确了2023年增值税小规模纳税人增值税减免税优惠政策及征管细则。我们仔细阅读了相关公告和解读,给大家总结了3个变化和5个实操要点,供大家参考。V观财报信披违法违规,荣科科技被立案!此前曾收警示函中新经纬1月10日电因涉信披违法违规,荣科科技及公司原实控人何任晖被证监会立案。公告截图荣科科技10日晚间公告披露称,公司及公司董事原实际控制人何任晖于当日收到中国证监会立案告知书看现实版小燕子,如何从18岁开始创业,赚到人生第一桶金!这是我们采访的第174位创业人物,创业即是人生,生命精彩待续著名作家余华在活着里有这样一段话永远不要相信苦难是值得赞美的,苦难就是苦难,苦难不会带来成功,也不值得追求。我们都无法选外媒中国有序恢复通关,全球工商界期待新机遇据路透社1月9日报道,中国日前取消了因疫情采取的一系列边境管控措施后,9日为疫情防控工作进入新阶段做好准备,金融市场也呈现走强趋势。报道认为,投资者认定中国重新开放的做法有助于重振新强联全资控股圣久锻件背后的疑问受拟全资控股圣久锻件消息刺激,新强联(300850)1月10日复牌股价大幅收涨11。34。据了解,1月9日晚间,新强联披露了重组草案,公司拟9。72亿元收购圣久锻件51。15股权,中国银行重庆市分行被罚内控管理及员工行为管理不到位来源中国经济网银保监会网站近日公布的重庆银保监局行政处罚信息公开表(渝银保监罚决字202245号)显示,中国银行股份有限公司重庆市分行内控管理及员工行为管理不到位。中国银保监会重庆百家名企预见2023董明珠利用好数字化工具,坚定走自主创新之路中新经纬1月10日电(王蕾)路虽远,行则将至事虽难,做则必成。新的一年,格力电器将继续坚定走自主创新自主研发之路。近日,珠海格力电器股份有限公司董事长兼总裁董明珠接受中新经纬专访时A股明日走势预判完毕,参考一个方向,本轮行情主力已枕戈待旦!大盘六连阳后今天短暂回踩,这是非常正常的走势,属于消化获利和修复乖离。我可以斩钉截铁的告诉大家,今天的震荡是很良性的也是很正常的,不但会让后市的行情更稳健,也会让大盘向上突破的可能利好!赣州公积金政策有变!事关贷款好消息!赣州市住房公积金管理中心发布通知明确对2023年1月1日起受理的贷款将公积金贷款可贷金额计算公式中的个贷率系数调整为7重大利好!个贷率系数调整为7那么,跟贷款金额又有什么关永诚财险股权被多次转让脱离电力资源领域股东该如何发展?作为典型的电力系保险公司,多位电力领域股东拟转让股权,依托于股东资源实现扭亏为盈的永诚财险该如何应对?中国科技投资张婷龙敏近日,北京产权交易所披露的信息显示,中国华电集团资本控股有