MySQL数据库和数据源_Spring系列 之数据源的配置 数据库 数据源 连接池的区别

本文详细介绍了Spring中数据源的配置,包括连接池的概念和作用,如c3p0和Druid,以及数据库的基本信息。数据源是管理数据库连接池的工具,不存储实际数据,而数据库是数据的存储位置。Spring提供了配置数据源的方法,包括手动配置和通过XML配置文件。文章还展示了如何使用Spring容器创建和管理DataSource。
摘要由CSDN通过智能技术生成

Spring系列之数据源的配置

数据源,连接池,数据库三者的区别

连接池:这个应该都学习过,比如c3p0,druid等等,连接池的作用是为了提高程序的效率,因为频繁的去创建,关闭数据库连接,会对性能有很大的消耗,所以就有了连接池,连接池顾名思义是存储多个连接的池子,池子中的连接都是创建好的,我们只要拿来使用即可,不用的时候就归还给连接池,这就大大减少了关闭创建连接的时间,提高了效率

数据库:存储数据的地方

数据源:数据源顾名思义是数据的来源,存储了连接数据库所需要的信息,也可以说是用于管理数据库连接池,并不存储真正的数据,仅仅记录了连接哪个数据库,怎么连接。如果把数据库比作一个文件的话,那么数据源存储的就是文件的名称,可以通过文件名称来找到对应的文件,算是一个抽象的映射,一个数据库对应一个数据源,数据源可能是一个连接,也可能是一个连接池

如果你是玫瑰,他就是牛粪

aacba166ec04300aee89cc1d01a6a64b.png

呸呸呸,说错了

如果数据是水,数据库就是水库,数据源就是管道,终端用户看到的数据集是管道里流出来的水。

59bdb3faff013960728ba51b975d78b4.png

Spring功能这么强大,怎么可能少的了数据源呢

Spring配置数据源

配置步骤:

1.导入数据源的坐标与数据库驱动坐标

2.创建数据源对象

3.设置数据源的基本连接信息

4.使用数据源获取连接或归还连接

需要导入的坐标信息

junit

junit

junit

4.13

test

druid

com.alibaba

druid

1.0.9

c3p0

c3p0

c3p0

0.9.1.2

spring—context

org.springframework

spring-context

5.0.3.RELEASE

mysql

mysql

mysql-connector-java

5.1.32

我先手动配置一波,等一下再用Spring容器经行配置,大家就能看到二者的巨大差别了

手动配置数据源

druid

public void main() throws Exception{

//创建数据源

DruidDataSource druidDataSource = new DruidDataSource();

//设置连接参数

druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");

druidDataSource.setUrl("jdbc:mysql://localhost:3309/one");

druidDataSource.setUsername("root");

druidDataSource.setPassword("1234");

//获取连接对象

DruidPooledConnection connection = druidDataSource.getConnection();

System.out.println(connection);

}

c3p0

public void test2() throws Exception{

//创建数据源

ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();

//设置连接参数

comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");

comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3309/one");

comboPooledDataSource.setUser("root");

comboPooledDataSource.setPassword("1234");

//获取连接对象

comboPooledDataSource.getConnection();

System.out.println(comboPooledDataSource);

}

为了降低耦合性之前我们是通过读取配置文件的方法,这里我给大家重新复习一下

首先抽取要配置的信息到配置文件

右端的字符串注意不要加双引号,否则会报错,因为他默认就是字符串

jdbc.Driver=com.mysql.jdbc.Driver

jdbc.Url=jdbc:mysql://localhost:3309/one

jdbc.Username=root

jdbc.Password=1234

再读取配置文件来创建连接池

public void test3() throws Exception{

//加载路径下的properties

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

//创建数据源

ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();

//设置连接参数

comboPooledDataSource.setDriverClass(bundle.getString("jdbc.Driver"));

comboPooledDataSource.setJdbcUrl(bundle.getString("jdbc.Url"));

comboPooledDataSource.setUser(bundle.getString("jdbc.Username"));

comboPooledDataSource.setPassword(bundle.getString("jdbc.Password"));

//获取连接对象

comboPooledDataSource.getConnection();

System.out.println(comboPooledDataSource);

}

这样的方式很好的降低了耦合性

重点来了,下面我们来讲讲如何使用Spring来配置数据源

a7441b70227ea9fadaae32ed55383b32.png

Spring配置数据源

将DataSource的创建权交给Spring容器去完成

DataSource有无参构造方法,Spring默认就是通过无参构造方法实例化对象

DataSource要想使用需要通过set方法设置数据库连接信息,Spring可以通过set方法进行注入

在Spring容器中配置Bean

到容器中获取资源

public void two() throws SQLException {

ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationcontext.xml");

DataSource datasource = (DataSource)classPathXmlApplicationContext.getBean("datasource");

Connection connection = datasource.getConnection();

System.out.println(connection);

}

上面的方法是不是还不够方便,我们可以用更方便的,即读取配置文件的方法

我们首先引入命名空间与约束路径

命名空间:xmlns:context="http://www.springframework.org/schema/context"

约束路径:http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

容器加载配置文件

配置Bean

以上就是Spring配置源的一些知识,有志同道合的伙伴可以关注我或者私信我加好友一同学习章,共勉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值