您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

springboot如何连接多个数据源并实现增,删,改,查

时间:2023-04-20 13:15:49  来源:  作者:摸鱼女程序员那些事儿

Spring Boot可以通过配置多个数据源来实现连接多个数据库,并且实现数据的增、删、改、查等基本操作。下面是一个简单的例子,演示如何在Spring Boot中同时连接两个MySQL数据库,并实现基本操作:

 

  1. Application.properties文件中添加配置:

# 数据源 1

spring.datasource.url=jdbc:mysql://localhost:3306/db1

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# 数据源 2

datasource2.url=jdbc:mysql://localhost:3306/db2

datasource2.username=root

datasource2.password=123456

datasource2.driver-class-name=com.mysql.jdbc.Driver

注意:这里使用了默认的HikariCP连接池,如果需要使用其他连接池,需要引入对应的库并进行配置。

  1. 在代码中定义两个数据源:

@Configuration

public class DataSourceConfig {

@Bean

@ConfigurationProperties(prefix = "spring.datasource")

public DataSource dataSource() {

return DataSourceBuilder.create().build();

}

 

@Bean(name = "datasource2")

@ConfigurationProperties(prefix = "datasource2")

public DataSource dataSource2() {

return DataSourceBuilder.create().build();

}

}

  1. 定义两个JdbcTemplate对象用于执行SQL语句:

@Configuration public class JdbcConfig {

 

 

@Autowired @Qualifier("dataSource")

private DataSource dataSource;

@Autowired @Qualifier("dataSource2")

private DataSource dataSource2;

 

 

@Bean(name = "jdbcTemplate1")

public JdbcTemplate jdbcTemplate1() {

return new JdbcTemplate(dataSource);

}

@Bean(name = "jdbcTemplate2")

public JdbcTemplate jdbcTemplate2()

{

return new JdbcTemplate(dataSource2);

}

}

 

4、在代码中使用JdbcTemplate对象执行SQL语句:

@Service public class UserService {

@Autowired

@Qualifier("jdbcTemplate1")

private JdbcTemplate jdbcTemplate1;

@Autowired @Qualifier("jdbcTemplate2")

private JdbcTemplate jdbcTemplate2; /

/ 查询用户信息

public List<User> getUserList() {

String sql = "SELECT * FROM user";

List<User> userList = jdbcTemplate1.query(sql, new BeanPropertyRowMapper<>(User.class));

return userList;

}

// 添加用户信息

public int addUser(User user) {

String sql = "INSERT INTO user (name, age) VALUES (?, ?)";

int result = jdbcTemplate2.update(sql, user.getName(), user.getAge());

return result;

}

// 修改用户信息

public int updateUser(User user) {

String sql = "UPDATE user SET name=?, age=? WHERE id=?";

int result = jdbcTemplate2.update(sql, user.getName(), user.getAge(), user.getId());

return result; }

// 删除用户信息

public int deleteUser(int id) {

String sql = "DELETE FROM user WHERE id=?";

int result = jdbcTemplate1.update(sql, id);

return result;

}

}

以上就是一个简单的在Spring Boot中连接多个MySQL数据库,并实现数据的增、删、改、查等基本操作的例子。如果需要连接其他类型的数据库,只需更改相关的驱动和连接字符串即可。



Tags:   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
网易再牵暴雪的手,实际想搂微软的腰
是复婚,也是新婚不论是网易和暴雪复婚的声明,还是见证重归于好的合影中,都有一个第三方:微软。在微软的斡旋和推动下,网易在这次复合中拿到了更多的运营权和后续改编暴雪IP的空间...【详细内容】
2024-04-11  Search:   点击:(2)  评论:(0)  加入收藏
注意!密码、验证码都没说,钱是怎么被骗走的?
转自:科普中国“我密码和验证码都没有给他,为什么钱还是被骗子骗走了?”骗子是怎么做到的呢?真实案例今年1月,武汉市民张某在家接到一陌生电话,电话自称是某平台的客服,告诉张某购...【详细内容】
2024-04-11  Search:   点击:(2)  评论:(0)  加入收藏
将他人商标设为搜索关键词构成侵权吗?看看这起案件
案情介绍近日,深圳市智搜信息技术有限公司(下称智搜信息公司)起诉广州玛塔网络有限公司(下称玛塔网络公司)、王某某商标侵权及不正当竞争纠纷案一审判决正式生效,广东省广州市海珠...【详细内容】
2024-04-11  Search:   点击:(2)  评论:(0)  加入收藏
打破刚兑:投资者还能相信保险吗
4月初,西安市民陈柏如去银行与投资经理谈了两小时,掰开聊透了自己的理财预期和投资规划后,她选择购买了一份年金险分红型产品。相比曾经过高的期望值,如今她务实了很多:“我从基...【详细内容】
2024-04-11  Search:   点击:(2)  评论:(0)  加入收藏
拜登坐不住了?罕见对美联储货币政策表态
周三公布的连续3个月高于预期的通胀数据对于拜登来说是灾难性的,因为高通胀和高失业率往往会影响总统的连任机会。拜登罕见公开“打赌”预测美联储年底前将降息。美国3月CPI...【详细内容】
2024-04-11  Search:   点击:(3)  评论:(0)  加入收藏
黄金狂飙如何影响人民币
传导效应下,金融市场的波动受到密切关注。北京商报记者注意到,在历经3月中下旬的大幅走贬后,4月以来人民币汇率呈现企稳回升态势。4月9日,人民币中间价小幅回落,单日调降9基点,日...【详细内容】
2024-04-11  Search:   点击:(2)  评论:(0)  加入收藏
重新审视2008年全球金融危机应对,我们需要记住什么?
我们要时常回望,审视金融危机所造成的伤疤,即使是在金融市场正常运行时期,也要绷紧神经,避免金融市场在错误的道路上越走越远,陷入危机境地。重新审视2008年全球金融危机应对,我们...【详细内容】
2024-04-11  Search:   点击:(2)  评论:(0)  加入收藏
京东掷10亿现金扶持达人,能捧出下一个“董宇辉”吗?
界面新闻记者 | 查沁君京东(NASDAQ:JD)终于打响了内容生态的第一枪。4月10日,京东宣布投入10亿现金和10亿流量加码内容生态。这是自年初京东零售定下2024年“三大必赢之战”(内容...【详细内容】
2024-04-11  Search:   点击:(1)  评论:(0)  加入收藏
直播电商激战正酣:2023年市场规模或超4.9万亿,京东增速惊人!
直播电商领域正成为众多电商平台竞争的新焦点。根据一份研究报告,2023年中国直播电商成交额达到4.9万亿,增速达到35%,显示出该领域的巨大潜力。传统电商平台增速放缓,而直播电商...【详细内容】
2024-04-11  Search:   点击:(2)  评论:(0)  加入收藏
“霸王条款”“刷单炒信”“大数据杀熟”怎么破解?这部法规都明确了!
预付式消费、直播带货、“一老一小”、“霸王条款”、“刷单炒信”、“大数据杀熟”、自动续费、强制搭售&hellip;&hellip;这些新领域的侵权你遇到过吗?消费者合法权益怎么保...【详细内容】
2024-04-11  Search:   点击:(0)  评论:(0)  加入收藏
▌简易百科推荐
Web Components实践:如何搭建一个框架无关的AI组件库
一、让人又爱又恨的Web ComponentsWeb Components是一种用于构建可重用的Web元素的技术。它允许开发者创建自定义的HTML元素,这些元素可以在不同的Web应用程序中重复使用,并且...【详细内容】
2024-04-03  京东云开发者    Tags:Web Components   点击:(8)  评论:(0)  加入收藏
Kubernetes 集群 CPU 使用率只有 13% :这下大家该知道如何省钱了
作者 | THE STACK译者 | 刘雅梦策划 | Tina根据 CAST AI 对 4000 个 Kubernetes 集群的分析,Kubernetes 集群通常只使用 13% 的 CPU 和平均 20% 的内存,这表明存在严重的过度...【详细内容】
2024-03-08  InfoQ    Tags:Kubernetes   点击:(12)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  风舞凋零叶    Tags:Spring Security   点击:(54)  评论:(0)  加入收藏
五大跨平台桌面应用开发框架:Electron、Tauri、Flutter等
一、什么是跨平台桌面应用开发框架跨平台桌面应用开发框架是一种工具或框架,它允许开发者使用一种统一的代码库或语言来创建能够在多个操作系统上运行的桌面应用程序。传统上...【详细内容】
2024-02-26  贝格前端工场    Tags:框架   点击:(47)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  程序员wayn  微信公众号  Tags:Spring   点击:(39)  评论:(0)  加入收藏
开发者的Kubernetes懒人指南
你可以将本文作为开发者快速了解 Kubernetes 的指南。从基础知识到更高级的主题,如 Helm Chart,以及所有这些如何影响你作为开发者。译自Kubernetes for Lazy Developers。作...【详细内容】
2024-02-01  云云众生s  微信公众号  Tags:Kubernetes   点击:(50)  评论:(0)  加入收藏
链世界:一种简单而有效的人类行为Agent模型强化学习框架
强化学习是一种机器学习的方法,它通过让智能体(Agent)与环境交互,从而学习如何选择最优的行动来最大化累积的奖励。强化学习在许多领域都有广泛的应用,例如游戏、机器人、自动驾...【详细内容】
2024-01-30  大噬元兽  微信公众号  Tags:框架   点击:(68)  评论:(0)  加入收藏
Spring实现Kafka重试Topic,真的太香了
概述Kafka的强大功能之一是每个分区都有一个Consumer的偏移值。该偏移值是消费者将读取的下一条消息的值。可以自动或手动增加该值。如果我们由于错误而无法处理消息并想重...【详细内容】
2024-01-26  HELLO程序员  微信公众号  Tags:Spring   点击:(86)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19   Java中文社群  微信公众号  Tags:SpringBoot   点击:(86)  评论:(0)  加入收藏
花 15 分钟把 Express.js 搞明白,全栈没有那么难
Express 是老牌的 Node.js 框架,以简单和轻量著称,几行代码就可以启动一个 HTTP 服务器。市面上主流的 Node.js 框架,如 Egg.js、Nest.js 等都与 Express 息息相关。Express 框...【详细内容】
2024-01-16  程序员成功  微信公众号  Tags:Express.js   点击:(88)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条