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

在Spring Boot中配置数据库连接

今天我们要谈谈如何在Spring Boot项目中配置数据库连接。我们会创建两个Java类:DatabaseProperties.javaDataSourceConfig.java,并在我们的应用程序中注入这些配置。让我们一起乘风破浪,开始这段编码之旅吧!

目录

    • 创建`DatabaseProperties.java`
    • 创建`DataSourceConfig.java`
    • 配置入口文件
    • 配置`application.properties`

创建DatabaseProperties.java

首先,我们需要创建一个类来存储数据库连接的相关属性。这个类将使用Spring Boot的@ConfigurationProperties注解来从application.properties文件中读取配置。以下是DatabaseProperties.java的示例:

package top.mryan2005.xxx; // 这个包名需要根据你的maven项目结构来调整

import org.springframework.boot.context.properties.ConfigurationProperties;
import lombok.Data;

@ConfigurationProperties(prefix = "spring.datasource")
@Data
public class DatabaseProperties {

    public String url;
    public String username;
    public String password;
    public String driverClassName;

}

在这个类中,我们定义了数据库连接所需的四个属性:urlusernamepassworddriverClassName。这些属性将从application.properties文件中读取。

创建DataSourceConfig.java

接下来,我们需要创建一个配置类DataSourceConfig.java,它将使用DatabaseProperties来配置数据源和JdbcTemplate

package top.mryan2005.xxx; // 这个包名需要根据你的maven项目结构来调整

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

import javax.sql.DataSource;

@Configuration
public class DataSourceConfig {

    @Autowired
    DatabaseProperties databaseProperties;

    @Bean
    public DataSource dataSource() {
        System.out.println(databaseProperties.url);
        System.out.println(databaseProperties.username);
        System.out.println(databaseProperties.password);
        System.out.println(databaseProperties.driverClassName);
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(databaseProperties.driverClassName);
        dataSource.setUrl(databaseProperties.url);
        dataSource.setUsername(databaseProperties.username);
        dataSource.setPassword(databaseProperties.password);
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}

在这个类中,我们定义了两个@Bean方法:dataSource()jdbcTemplate()dataSource()方法使用DatabaseProperties来配置并返回一个DriverManagerDataSource实例,而jdbcTemplate()方法则返回一个基于该数据源的JdbcTemplate实例。

配置入口文件

在Spring Boot的入口文件(即*Application.java)中,我们需要添加@EnableConfigurationProperties(DatabaseProperties.class)注解,以使DatabaseProperties类生效。

import org.springframework.boot.context.properties.EnableConfigurationProperties;
// 其他import语句...

@SpringBootApplication
@EnableConfigurationProperties(DatabaseProperties.class)
public class YourApplication {

    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

配置application.properties

最后,在application.properties文件中,我们需要添加数据库连接的具体配置:

spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=newSQLRepo;encrypt=false
spring.datasource.username=sa
spring.datasource.password=123456
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.data-source-class-name=com.alibaba.druid.pool.DruidDataSource

这样,我们的Spring Boot项目就配置好了数据库连接。

旅行者们,现在你们可以尽情享受数据的海洋啦!比起七天神像,你眼里的光芒更值得被传唱呢。

继续前行吧,编程的旅程才刚刚开始!

相关文章:

  • 一个使用nginx转发的cgi程序示例
  • BEVFormer v2(CVPR2023)
  • Airflow量化入门系列:第一章 Airflow 基础与量化交易场景
  • K8S学习之基础七十二:Ingress基于Https代理pod
  • 【LLM】MCP(Python):实现 SSE 通信的 Server 和 Client
  • NO.66十六届蓝桥杯备战|基础算法-贪心-区间问题|凌乱的yyy|Rader Installation|Sunscreen|牛栏预定(C++)
  • 一键自动备份:数据安全的双重保障
  • Linux网络:数据链路层以太网
  • 6.第二阶段x64游戏实战-分析人物状态
  • MySQL:表的约束
  • Windows 10/11系统优化工具
  • 基于Spark的招聘数据预测分析推荐系统
  • Golang的Web框架比较与选择
  • 26.[MRCTF2020]Transform 1
  • 构建macOS命令速查手册:基于Flask的轻量级Web应用实践
  • 代码随想录算法训练营第三十八天 | 322.零钱兑换 279.完全平方数 139.单词拆分
  • 关于HikariDataSource (null)的误解,顺带提出一种mybaits-Plus mapper映射失败的容易被忽视的原因
  • 用swift playground写个ios应用和大模型或者网站交互
  • 日本汽车规模性经济计划失败,日产三大品牌的合并合作共赢,还是绝地求生?本田与日产合并确认失败,将成为世界第三大汽车集团愿景失败
  • 如何绕过myabtis-plus的逻辑删除条件