如何在Springboot中配置多个数据库?springboot的优点是什么?
时间:2023-06-12 15:27:26来源:产业经济网

如何在Springboot中配置多个数据库?

一、添加数据库依赖

在pom.xml文件中添加需要使用的数据库依赖。例如,如果我们需要使用MySQL和Oracle数据库,则需要添加以下依赖:

mysql

mysql-connector-java

{MySQL版本号}

com.oracle.database.jdbc

ojdbc8

{Oracle版本号}

二、配置数据源

在Spring Boot项目中,我们可以使用application.properties或application.yml配置文件来配置数据源。通常情况下,我们需要为每个数据库配置一个数据源。

使用application.properties配置数据源

在application.properties文件中,我们可以使用以下配置来配置数据源:

# MySQL 数据源配置

spring.datasource.mysql.url={MySQL数据库连接地址}

spring.datasource.mysql.username={MySQL数据库用户名}

spring.datasource.mysql.password={MySQL数据库密码}

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

# Oracle 数据源配置

spring.datasource.oracle.url={Oracle数据库连接地址}

spring.datasource.oracle.username={Oracle数据库用户名}

spring.datasource.oracle.password={Oracle数据库密码}

spring.datasource.oracle.driver-class-name=oracle.jdbc.driver.OracleDriver

使用application.yml配置数据源

在application.yml文件中,我们可以使用以下配置来配置数据源:

# MySQL 数据源配置

spring:

datasource:

mysql:

url: {MySQL数据库连接地址}

username: {MySQL数据库用户名}

password: {MySQL数据库密码}

driver-class-name: com.mysql.cj.jdbc.Driver

# Oracle 数据源配置

spring:

datasource:

oracle:

url: {Oracle数据库连接地址}

username: {Oracle数据库用户名}

password: {Oracle数据库密码}

driver-class-name: oracle.jdbc.driver.OracleDriver

三、配置JdbcTemplate

在Spring Boot项目中,我们可以使用JdbcTemplate来访问数据库。为了访问多个数据库,我们需要为每个数据库创建一个JdbcTemplate实例。

@Configuration

public class DataSourceConfig {

@Bean(name = "mysqlJdbcTemplate")

public JdbcTemplate mysqlJdbcTemplate(@Qualifier("mysqlDataSource") DataSource dataSource) {

return new JdbcTemplate(dataSource);

}

@Bean(name = "oracleJdbcTemplate")

public JdbcTemplate oracleJdbcTemplate(@Qualifier("oracleDataSource") DataSource dataSource) {

return new JdbcTemplate(dataSource);

}

@Bean(name = "mysqlDataSource")

@ConfigurationProperties(prefix = "spring.datasource.mysql")

public DataSource mysqlDataSource() {

return DataSourceBuilder.create().build();

}

@Bean(name = "oracleDataSource")

@ConfigurationProperties(prefix = "spring.datasource.oracle")

public DataSource oracleDataSource() {

return DataSourceBuilder.create().build();

}

}

在上述代码中,我们定义了两个JdbcTemplate实例:mysqlJdbcTemplate和oracleJdbcTemplate。每个JdbcTemplate实例都需要一个对应的数据源,因此我们还定义了两个数据源:mysqlDataSource和oracleDataSource。

通过@Bean注解,我们将这些实例注册到Spring容器中。@Qualifier注解用于指定使用哪个数据源。

四、使用JdbcTemplate访问数据库

现在我们已经完成了多个数据库的配置和数据源的创建,可以使用JdbcTemplate来访问数据库了。

@Service

public class UserService {

@Autowired

@Qualifier("mysqlJdbcTemplate")

private JdbcTemplate mysqlJdbcTemplate;

@Autowired

@Qualifier("oracleJdbcTemplate")

private JdbcTemplate oracleJdbcTemplate;

public List getAllUsersFromMySQL() {

String sql = "SELECT * FROM user";

return mysqlJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));

}

public List getAllUsersFromOracle() {

String sql = "SELECT * FROM user";

return oracleJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));

}

}

在上述代码中,我们使用@Autowired注解将mysqlJdbcTemplate和oracleJdbcTemplate注入到UserService中。使用JdbcTemplate的query()方法可以执行SQL查询语句并返回结果。

springboot的优点是什么?

1.可快速构建独立的 Spring 应用

Spring Boot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时,我们只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。

2.直接嵌入Tomcat、Jetty 和Undertow 服务器(无须部署WAR文件)

传统的Spring应用部署时,通常会将应用打成 WAR包形式并部署到Tomcat、Jetty或Undertow 服务器中。Spring Boot框架内嵌了Tomcat、Jetty和Undertow 服务器,而且可以自动将项目打包,并在项目运行时部署到服务器中。

3.通过依赖启动器简化构建配置

在Spring Boot项目构建过程中,无须准备各种独立的JAR文件,只需在构建项目时根据开发场景需求选择对应的依赖启动器“starter”,在引入的依赖启动器“starter”内部已经包含了对应开发场景所需的依赖,并会自动下载和拉取相关JAR包。例如,在Web开发时,只需在构建项目时选择对应的Web场景依赖启动器spring-boot-starter-web,Spring Boot项目便会自动导入spring-webmvc、spring-web、spring-boot-starter-tomcat等子依赖,并自动下载和获取Web开发需要的相关JAR包。

4.自动化配置Spring和第三方库

Spring Boot 充分考虑到与传统Spring 框架以及其他第三方库融合的场景,在提供了各种场景依赖启动器的基础上,内部还默认提供了各种自动化配置类(例如 RedisAuto Configuration)。使用Spring Boot开发项目时,一旦引入了某个场景的依赖启动器,Spring Boot内部提供的默认自动化配置类就会生效,开发者无须手动在配置文件中进行相关配置(除非开发者需要更改默认配置),从而极大减少了开发人员的工作量,提高了程序的开发效率。

5.提供生产就绪功能

Spring Boot提供了一些用于生产环境运行时的特性,例如指标、监控检查和外部化配置。其中,指标和监控检查可以帮助运维人员在运维期间监控项目运行情况;外部化配置可以使运维人员快速、方便地进行外部化配置和部署工作。

6.极少的代码生成和XML配置

Spring Boot 框架内部已经实现了与Spring以及其他常用第三方库的整合连接,并提供了默认最优化的整合配置,使用时基本上不需要额外生成配置代码和XML配置文件。在需要自定义配置的情况下,Spring Boot更加提倡使用Java config(Java 配置类)替换传统的XML配置方式,这样更加方便查看和管理。

虽然说 Spring Boot有诸多的优点,但Spring Boot也有一些缺点。例如,Spring Boot入门较为简单,但是深入理解和学习却有一定的难度,这是因为SpringBoot是在Spring框架的基础上推出的,所以读者想要弄明白Spring Boot的底层运行机制,有必要对Spring框架有一定的了解。

标签: 怎么在Springboot项目中配置多个数据库

最新
  • 如何在Springboot中配置多个数据库?springboot的优点是什么?

    如何在Springboot中配置多个数据库?一、添加数据库依赖在pom xml文

  • 龘靐齉爩怎么读?龘靐齉爩是什么意思?

    读音:龘读作:d&aacute;,声母:d,韵母:a,声调:二声靐读作:b&

  • 民事诉讼一般多久开庭?民事诉讼时效期限是多久?

    民事诉讼一般多久开庭?不能超过3个月。一般的民事案件的审理期限为3

  • 什么情况下需要转移社保?社保不转移等于白交吗

    什么情况下需要转移社保?若参保人在参保地无法达到领取条件,将前往

  • 女性波波头发型有哪些(女士波波头发型)

    女性波波头发型有哪些?女性波波头发型有:齐肩波波头、线条烫波波头

  • 董明珠三十年没休过假是真的吗?董明珠有多少个亿家产?|天天微动态

    董明珠三十年没休过假是真的吗?早年间董明珠接受记者采访,被问到休

  • 活性炭雕价格贵吗 活性炭雕有什么用途?_天天快看

    活性炭雕价格贵吗1、在了解活性炭雕的价格之前,我们先来看看它的组

  • 可行权股票期权是什么意思?股票期权是怎么交易的?

    可行权股票期权是什么意思?可行权股票期权的意思是投资者拥有某种股

  • 哈弗h2前轮怎么卸(哈弗h2热车后不能着车是什么原因)

    哈弗h2前轮怎么卸?拆卸汽车轮胎的整个过程需要准备好工具和设备,包

  • 全球视点!博天环境集团股份有限公司公司简介 博天环境集团股份有限公司主营业务介绍

    博天环境集团股份有限公司公司简介博天环境集团股份有限公司(603603

  • 剪头发前一定要洗头吗?头发往左梳还是往右梳?

    剪头发前一定要洗头吗?剪头发之前可以不用洗头,但这样就无法保证剪的效果,现在很多地方都可以直接剪,

  • 生产药膏资质怎么办理? 仙佑集团膏药的包装和储存方法 环球今日讯

    随着人们对健康问题的日益关注,膏药行业也在不断发展壮大。膏药是一种传统的中药制品,具有多种功效,

  • 股票放量缩量意味着什么?股票放量上涨第二天还会涨吗?

    股票放量缩量意味着什么?股票放量通常意味着市场交易活跃度增加,投资者对该股票的关注度增强。如果股票

  • 信用卡逾期了无力偿还会坐牢吗?信用卡逾期两个月了还不上怎么办

    信用卡逾期了无力偿还会坐牢吗不会的,无力偿还银行贷款,只是民事纠纷,不会坐牢。但是有能力而拒不执

  • 中介诈骗怎么起诉?起诉的流程和资料有什么?

    一、中介诈骗属于什么罪中介诈骗属于诈骗罪。1 诈骗是属于侵犯财产的犯罪类型,它所涉及的诈骗罪是指以

  • 手机截图步骤是怎样的?手机截图功能是啥?

    大部分手机会自带截图功能,不借助其它软件,可以达到快速截图的效果,应该如何操作呢?手机型号:华为p4

  • 旅游
    • 车险按责赔付是什么意思?车险对方全责保险公司怎么赔?

    • 港股分红扣税最新规则是什么?港股通股息税怎么征收?

    • 胡萝卜素为主要的维生素A源物质?类胡萝卜素的结构和种类是?

    • 灵活就业人员养老保险交哪个档次好? 灵活就业人员养老保险补贴