Spring配置数据源的三种方式(小结)

网友投稿 349 2022-09-02


Spring配置数据源的三种方式(小结)

目录一、前言三、开发数据源的方式方式1:手动输入方式2:Properties配置文件方式3:Spring配置数据源四、总结

一、前言

今天学习了用spring配置Druid数据源的三种方式,整理了学习笔记,希望大家喜欢!

二、数据源的作用

数据源(连接池)是提高程序性能如出现的事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源

常见的数据源:DBCP、C3P0、BoneCP、Druid等等,本文主要以Druid数据源为案例实现Spring对数据源的开发应用

三、开发数据源的方式

方式1:手动输入

先创建一个maven工程,引入依赖,为了方便起见,我还导入了Junit的依赖,此外,还有mysql的驱动依赖、Druid数据源的依赖和spring依赖

junit

junit

4.12

mysql

mysql-connector-java

8.0.27

com.alibaba

druid

1.1.22

org.springframework

spring-context

5.3.14

直接编写一个测试类,开始测试

@Test

public void test1() throws SQLException {

//创建数据源对象

DruidDataSource dataSource = new DruidDataSource();

//设置数据源的基本连接数据

dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");

dataSource.setUrl("jdbc:mysql://localhost:3306/test");

dataSource.setUsername("root");

dataSource.setPassword("0315");

//使用数据源获取连接资源

Connection connection = dataSource.getConnection();

//打印连接资源的信息

System.out.println(connection);

//关闭连接资源

connection.close();

}

分析: setDriverClassName()填入的是连接驱动类Driver的包路径、setUrl()设置要连接的数据库的地址、setUsername()自己的数据库用户名、setPassword()数据库密码

运行结果:

方式2:Properties配置文件

在resources下建一个名为jdbc.properties的文件,填入数据源的基本连接数据

jdbc.driver=com.mysql.cj.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/test

jdbc.username=root

jdbc.password=0315

编写一个测试类,开始测试

@Test

public void test2() throws SQLException {

//ResourceBundle这个类专门用来读取properties类型的文件

ResourceBundle bundle = ResourceBundle.getBundle("jdbc");

//设置数据源的基本连接数据

String driver = bundle.getString("jdbc.driver");

String url = bundle.getString("jdbc.url");

String username = bundle.getString("jdbc.username");

String password = bundle.getString("jdbc.password");

DruidDataSource dataSource = new DruidDataSource();

dataSource.setDriverClassName(driver);

dataSource.setUrl(url);

dataSource.setUsername(username);

dataSource.setPassword(password);

DruidPooledConnection connection = dataSource.getConnection();

System.out.println(connection);

connection.close();

}

这种方式就比方式一好很多了,如果我们使用的数据库发生了改变,就只需要在Properties文件中进行修改,从而不需要从代码中修改,提高了开发的效率

方式3:Spring配置数据源

继续使用前面的jdbc.properties文件,我们可以将数据源的创建权交由Spring容器去完成,编写一个名为applicationContext.xml的spring配置文件,把数据源放入spring容器中

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd">

通过这种spring配置文件的方式,我们就可以获取了数据源,接下来写一个代码用来测试

@Test

public void test3() throws SQLException {

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

DruidDataSource dataSource = applicationContext.getBean(DruidDataSource.class);

DruidPooledConnection connection = dataSource.getConnection();

//打印连接信息

System.out.println(connection);

connection.close();

}

运行结果:

不知道小伙伴们看到value的属性值那么长,有没有感觉到一丝丝的不舒服,反正我是有。那么有没有一种方法能够将配置更加的清晰明了呢?答案是:有!那么该如何做呢?

首先要做的是,把jdbc.properties配置文件的对象放进spring容器中,这样就方便了以后的调用,具体代码:

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context.xsd">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context.xsd">

分析: 首先要在头文件中引入下图所示的名称空间,最后value的属性值用${key}的方式获取到jdbc.properties的value值,这样的运行结果也是跟上面一样

四、总结

我们最需要掌握的就是最后一种方法,一定要学会这种配置方式!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:玩转Python日志模块(logging)(python 日志文件)
下一篇:【lssvm预测】基于萤火虫算法优化最小二乘支持向量机lssvm实现交通流回归预测附matlab代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~