基本说明
这篇文章介绍如何在springboot的项目中进行数据库的连接,完成数据库操作。
默认数据源HikariDataSource
HikariDataSource是springboot的默认数据源,性能十分优秀,我们如果想要进行数据库操作,需要引入相应的starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
在这个starter里面就有关于HikariDataSource的引入
Spring Boot 不知道项目要操作 Mysql 还是 Oracle,或者是其他数据库 ,所以需要在 pom.xml 指定导入数据库驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
接下来就是配置数据库的基本信息了,我们在配置文件yaml中进行配置,数据库的配置信息是基于DataSourceProperties这个类的
下面就是该类的一些字段
我们需要配置的就4个,就是用户名,密码,驱动类名和url
把这些配置完成之后我们就可以直接使用了,我们使用JdbcTemplate来测试一下
下面是我创建的一张表,里面有3条信息,现在就是要使用JdbcTemplate完成该表的查询
测试代码如下
@Data
public class People {
private Integer id;
private String name;
private String gender;
private Integer age;
}
@SpringBootTest
public class ApplicationTest {
@Resource
private JdbcTemplate jdbcTemplate;
@Test
public void t1() {
BeanPropertyRowMapper<People> rowMapper = new BeanPropertyRowMapper<>(People.class);
String sql = "select * from people";
List<People> peopleList = jdbcTemplate.query(sql, rowMapper);
System.out.println("\n----------------start----------------");
System.out.println(Objects.requireNonNull(jdbcTemplate.getDataSource()).getClass());
for (People people : peopleList) {
System.out.println(people);
}
System.out.println("-----------------end-----------------\n");
}
}
运行代码,查看控制台输出
可以发现已经完成了查询,也就是说明数据库的连接已经没有问题了。还可以看见我们springboot使用的默认数据源确实是HikariDataSource。
切换数据源为Druid
上面我们使用的是默认数据源,这里我就来介绍如何进行切换,以Druid为例子,首先我们现需要引入druid的相关依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.15</version>
</dependency>
然后创建一个配置类,在这个类里面注入一个DruidDataSource
@Configuration
public class DruidConfig {
@ConfigurationProperties("spring.datasource")
@Bean
public DataSource dataSource(){
return new DruidDataSource();
}
}
@ConfigurationProperties(“spring.datasource”)这行代码的意思就是DruidDataSource要去读取配置文件中关于spring.datasource信息,配置文件内容如下
这样配置之后,我们的数据源就已经是Druid了,还是运行上面的测试代码,查看控制台输出
可以发现数据源已经切换为Druid了。
转载:https://blog.csdn.net/m0_51545690/article/details/127920165