当前位置: 首页 > news >正文

首页%3e新闻%3e正文 网站怎么做小程序和app

首页%3e新闻%3e正文 网站怎么做,小程序和app,网站建设项目招标书,线上宣传渠道文章目录 为什么需要多数据源#xff1f;Spring Boot集成MyBatis的基础配置使用多数据源小结 #x1f389;Spring Boot集成MyBatis实现多数据源访问的“秘密” ☆* o(≧▽≦)o *☆嗨~我是IT陈寒#x1f379;✨博客主页#xff1a;IT陈寒的博客#x1f388;该系列文章专栏Spring Boot集成MyBatis的基础配置使用多数据源小结 Spring Boot集成MyBatis实现多数据源访问的“秘密” ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒✨博客主页IT·陈寒的博客该系列文章专栏架构设计其他专栏Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习文章作者技术和水平有限如果文中出现错误希望大家能指正 欢迎大家关注 ❤️ 在企业级应用程序中往往需要处理多个数据库的数据。Spring Boot提供了强大的功能使得集成多数据源变得相对容易。本文将揭示Spring Boot集成MyBatis实现对多数据源的访问的“秘密”并通过实例代码来演示整个过程。 为什么需要多数据源 在实际的应用中有一些常见的场景需要使用多个数据源 业务数据和日志数据分离 将业务数据和日志数据存储在不同的数据库中方便业务数据的备份和维护。 读写分离 将读操作和写操作分别指向不同的数据库提高系统的读取性能。 多租户系统 在一个系统中为不同的租户使用不同的数据库确保数据隔离和安全性。 数据分片 将数据按照某种规则分散到不同的数据库中提高查询效率。 Spring Boot集成MyBatis的基础配置 在开始之前确保你已经创建了一个Spring Boot项目。接下来我们将通过Maven添加MyBatis和连接池的依赖项。 !-- MyBatis依赖 -- dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.2.0/version /dependency!-- 数据库连接池以Druid为例 -- dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.6/version /dependency接着配置application.properties或application.yml文件指定数据库连接信息 # 主数据源 spring.datasource.primary.urljdbc:mysql://localhost:3306/primarydb spring.datasource.primary.usernameroot spring.datasource.primary.passwordroot spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver# 第二个数据源 spring.datasource.secondary.urljdbc:mysql://localhost:3306/secondarydb spring.datasource.secondary.usernameroot spring.datasource.secondary.passwordroot spring.datasource.secondary.driver-class-namecom.mysql.cj.jdbc.Driver这里配置了两个数据源分别是primary和secondary。接下来我们需要创建对应的数据源、SqlSessionFactory和SqlSessionTemplate。 Configuration MapperScan(basePackages com.example.mapper.primary, sqlSessionTemplateRef primarySqlSessionTemplate) public class PrimaryDataSourceConfig {PrimaryBean(name primaryDataSource)ConfigurationProperties(prefix spring.datasource.primary)public DataSource dataSource() {return DataSourceBuilder.create().build();}PrimaryBean(name primarySqlSessionFactory)public SqlSessionFactory sqlSessionFactory(Qualifier(primaryDataSource) DataSource dataSource) throws Exception {SqlSessionFactoryBean factoryBean new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);return factoryBean.getObject();}PrimaryBean(name primarySqlSessionTemplate)public SqlSessionTemplate sqlSessionTemplate(Qualifier(primarySqlSessionFactory) SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);} }上述代码中Primary注解表示这是主数据源的配置。同样我们也需要为第二个数据源进行配置 Configuration MapperScan(basePackages com.example.mapper.secondary, sqlSessionTemplateRef secondarySqlSessionTemplate) public class SecondaryDataSourceConfig {Bean(name secondaryDataSource)ConfigurationProperties(prefix spring.datasource.secondary)public DataSource dataSource() {return DataSourceBuilder.create().build();}Bean(name secondarySqlSessionFactory)public SqlSessionFactory sqlSessionFactory(Qualifier(secondaryDataSource) DataSource dataSource) throws Exception {SqlSessionFactoryBean factoryBean new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);return factoryBean.getObject();}Bean(name secondarySqlSessionTemplate)public SqlSessionTemplate sqlSessionTemplate(Qualifier(secondarySqlSessionFactory) SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);} }这样我们已经完成了多数据源的基础配置。 使用多数据源 接下来我们将演示如何在Service层中使用多数据源。首先创建对应的Mapper接口和Mapper XML文件。 // PrimaryDataSource中的Mapper接口 Mapper public interface PrimaryUserMapper {User getUserById(Param(userId) int userId); }!-- PrimaryUserMapper.xml -- mapper namespacecom.example.mapper.primary.PrimaryUserMapperresultMap idBaseResultMap typecom.example.entity.Userid columnid propertyid jdbcTypeINTEGER/result columnusername propertyusername jdbcTypeVARCHAR/result columnpassword propertypassword jdbcTypeVARCHAR//resultMapselect idgetUserById resultMapBaseResultMapSELECT * FROM user WHERE id #{userId}/select /mapper// SecondaryDataSource中的Mapper接口 Mapper public interface SecondaryUserMapper {User getUserById(Param(userId) int userId); }!-- SecondaryUserMapper.xml -- mapper namespacecom.example.mapper.secondary.SecondaryUserMapperresultMap idBaseResultMap typecom.example.entity.Userid columnid propertyid jdbcTypeINTEGER/result columnusername propertyusername jdbcTypeVARCHAR/result columnpassword propertypassword jdbcTypeVARCHAR//resultMapselect idgetUserById resultMapBaseResultMapSELECT * FROM user WHERE id #{userId}/select /mapper然后在Service层中分别注入两个Mapper接口并在方法中使用对应的数据源。 Service public class UserService {Autowiredprivate PrimaryUserMapper primaryUserMapper;Autowiredprivate SecondaryUserMapper secondaryUserMapper;Transactional(transactionManager primaryTransactionManager)public User getPrimaryUserById(int userId) {return primaryUserMapper.getUserById(userId);}Transactional(transactionManager secondaryTransactionManager)public User getSecondaryUserById(int userId) {return secondaryUserMapper.getUserById(userId);} }在上述代码中通过Transactional(transactionManager primaryTransactionManager)注解指定了使用主数据源。同样Transactional(transactionManager secondaryTransactionManager)注解指定了使用第二个数据源。 最后我们需要在application.properties或application.yml中配置事务管理器的Bean。 # 主数据源事务管理器 spring.primary.datasource.transactionManagerprimaryTransactionManager# 第二个数据源事务管理器 spring.secondary.datasource.transactionManagersecondaryTransactionManager小结 通过以上步骤我们成功地实现了Spring Boot集成MyBatis并实现了对多数据源的访问。使用多数据源可以满足一些特定的业务需求如读写分离、多租户系统等。在实际应用中根据项目的具体情况可以进一步进行配置和优化。 希望本文能够帮助读者更好地理解Spring Boot如何集成MyBatis以及如何配置和使用多数据源。同时了解多数据源的使用场景和优势对于构建高性能、可扩展的应用系统有着重要的意义。 结尾 ❤️ 感谢您的支持和鼓励 您可能感兴趣的内容 【Java面试技巧】Java面试八股文 - 掌握面试必备知识目录篇【Java学习路线】2023年完整版Java学习路线图【AIGC人工智能】Chat GPT是什么初学者怎么使用Chat GPT需要注意些什么【Java实战项目】SpringBootSSM实战打造高效便捷的企业级Java外卖订购系统【数据结构学习】从零起步学习数据结构的完整路径
http://www.zqtcl.cn/news/525271/

相关文章:

  • 宁波网站建设是哪家便宜织梦网站数据库备份文件夹
  • 在北京大学生做家教的网站淘宝网页
  • 英铭网站建设网站如何推广引流
  • 关于电子商务网站建设的现状企业公示信息查询系统山西
  • 网站开发 翻译长春建站企业
  • dedecms网站网站解析一般什么时候
  • 制作网站的技术北京律师24小时电话
  • 可拖拽 网站建设如何做自媒体和网站签约赚点击
  • 做网站选哪个语言怎么登录百度app
  • 国发网站建设网站优化主要优化哪些地方
  • 快速微信网站开发定制网站建设费用预算
  • 网站制作叫什么知名网站建设制作
  • 网络营销网站建设公司h5应用
  • 网站开发合同要上印花税吗南江红鱼洞水库建设管理局网站
  • 疏通下水道网站怎么做wordpress 恢复初始化
  • 电脑商业网站怎的做软文推广渠道
  • 自己做网站需要买什么如何做微信商城网站
  • 有了网站开发app是不是更容易自建网站管理
  • 网站将要准备建设的内容有哪些做外贸有效的网站
  • 网站设计博客网站内容添加
  • 网站建站行业新闻微盟开店怎么收费
  • 网站的建设参考文献郑州网站建设中国建设建设银行
  • 重庆那些公司的网站是网易做的电信100m光纤做网站
  • 网站怎么设计产品营销策略包括哪些内容
  • 天元建设集团有限公司破产重组河源seo排名
  • 网站权重什么意思seo的搜索排名影响因素有
  • 建设报名系统是正规网站吗计算机培训班出来好找工作吗
  • 网站上的文章用秀米可以做吗宁波外客网络科技有限公司
  • 网站底部导航代码成品视频直播软件推荐哪个好一点ios
  • 上海电商网站开发公司垫江网站建设价格