SpringBoot快速配置数据源的方法

时间:2021-05-20

SpringBoot如何快速配置数据源;有如下两种方式:

  • 通过spring-boot-starter-jdbc快速配置数据源
  • 自定义数据源DataSource
  • 首先我们需要明确数据源DataSource有什么作用:

  • 通过DataSource可以获取数据库连接Connection
  • 通过DataSource创建JdbcTemplate操作数据库
  • 实际项目中,我们在配置数据源的时候会指定数据库连接池,比如流行的Hikari(spring默认的数据库连接池)、C3p0、Dbcp2以及阿里巴巴的Druid。

    一、使用数据库连接池

    应用在操作数据库的时候,直接从数据库连接池获取连接,而不需要每次创建新的连接。

    至于数据库连接池的好处,总结就是: 应用创建和销毁连接的代价是很大的,使用数据库连接池可以很好的复用连接,节省开销,方便管理,简化开发。

    可能有些场景我们不想使用SpringBoot JDBC默认的数据源,我需要引入数据库连接池,然后自定义数据源,指定数据源类型。

    下面以Dbcp2数据库连接池配置数据源为例。

    二、配置依赖

    引入dbcp2的数据库连接池已经相关依赖。

    <!-- dbcp2数据库连接池 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.7.0</version></dependency><!--数据库驱动--><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version></dependency><!-- 提供操作数据库的标准口径 --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.2.RELEASE</version> <scope>compile</scope></dependency>

    三、编写配置项

    在application.properties文件中配置数据库连接属性。

    customize.datasource.url=jdbc:mysql://localhost:3306/blue?serverTimezone=UTCcustomize.datasource.username=rootcustomize.datasource.password=wan4380797customize.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

    四、自定义DataSource

    import org.apache.commons.dbcp2.BasicDataSource;@Configurationpublic class Dbcp2DataSource { @Bean("myDbcp2DataSource") @ConfigurationProperties(prefix = "customize.datasource") public DataSource getDataSource(){ return DataSourceBuilder.create().type(BasicDataSource.class).build(); }}

    这边我们可以看到我们创建的DataSource类型为BasicDataSource类型的。并且BasicDataSource来源于之前配置的dbcp2依赖的jar包中。

    五、调用验证

    下面我们使用junit来验证以下数据源配置的正确与否:

    @SpringBootTest@RunWith(SpringRunner.class)public class JdbcCustomizeDatasourceApplicationTests { @Autowired @Qualifier("myDbcp2DataSource") private DataSource dataSource; @Test public void springJdbcTemplateTest(){ try{ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); String queryStr = "select * from student"; List<Student> resultList = new ArrayList<>(); jdbcTemplate.query(queryStr, (ResultSet resultSet)->{ Student student = new Student(); student.setId(resultSet.getString("id")); student.setStudentId(resultSet.getString("student_id")); student.setStudentName(resultSet.getString("student_name")); student.setAge(resultSet.getInt("age")); resultList.add(student); }); resultList.forEach((Student student) -> System.out.println(student)); }catch (Exception exception){ exception.printStackTrace(); } }}

    以上就是SpringBoot快速配置数据源的方法的详细内容,更多关于SpringBoot 配置数据源的资料请关注其它相关文章!

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章