Spring Boot 配置数据库 连接方式
Spring Boot (mybatis)配置数据库 连接方式
1、第一种方式,使@Value 注解的方式进行注入
1.1 编写配置文件 例如 jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123456
1.2 编写一个属性类、配置类
@Data
public class jdbcProperties {
String url;
String driverClassName;
String username;
String password;
}
package com.caicia.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
@Configuration
@EnableConfigurationProperties(jdbcProperties.class)
@PropertySource("classpath:jdbc.properties") 以前的配置方式
public class JdbcConfig {
//Spring boot 自带的Value注解
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String dirclassname;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource(){
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(dirclassname);
dataSource.setUsername(username);
dataSource.setUrl(url);
dataSource.setPassword(password);
return dataSource;
}
}
2、第二种数据库注入方式
2.1 编写一个默认的数据配置文件:application.proterties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou
jdbc.username=root
jdbc.password=123456
2.2 编写属性类
package com.caicia.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; //添加配置属性注解 @ConfigurationProperties(prefix = "jdbc") //追加前缀 @Data //lombock 插件,使用这个注解,可以在编译的时候自动生成 get set toString 方法。详细查看lombock 源码 public class jdbcProperties { String url; String driverClassName; String username; String password; }
2.3 编写配置类
package com.caicia.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import javax.sql.DataSource; //添加配置类注解 @Configuration
//添加允许配置属性注解,并引入配置文件 @EnableConfigurationProperties(jdbcProperties.class) // public class JdbcConfig { @Bean public DataSource dataSource(jdbcProperties jdbcProperties){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(jdbcProperties.getDriverClassName()); dataSource.setUsername(jdbcProperties.getUsername()); dataSource.setUrl(jdbcProperties.getUrl()); dataSource.setPassword(jdbcProperties.getPassword()); return dataSource; } }
3、相对优雅的注入数据方式
3.1 编写属性类
package com.caicia.config; import lombok.Data; @Data public class jdbcProperties { String url; String driverClassName; String username; String password; }
3.2 编写配置类
package com.caicia.config; import com.alibaba.druid.pool.DruidDataSource;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import javax.sql.DataSource; //添加配置类注解 @Configuration public class JdbcConfig { @Bean @ConfigurationProperties(prefix = "jdbc")
// datasource 方法是Spring 去调用的,它会在调用的时候,首先会扫描到配置注解,然后去找datasouce 相关字段有没有set 方法如果有 自动注入到applicationcontext 中 public DataSource dataSource (){ return new DruidDataSource(); } }
3.3 编写 application.properties
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou jdbc.username=root jdbc.password=123456
开开心心,上班!
快快乐乐,游玩!
及时行乐!
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律