Spring 系列之数据源的配置 数据库 数据源 连接池的区别
1.导入数据源的坐标与数据库驱动坐标
2.创建数据源对象
3.设置数据源的基本连接信息
4.使用数据源获取连接或归还连接
需要导入的坐标信息
junit
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
=========================================================================
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.9</version>
</dependency>
========================================================================
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
==================================================================================
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.3.RELEASE</version>
</dependency>
=========================================================================
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
我先手动配置一波,等一下再用 Spring 容器经行配置,大家就能看到二者的巨大差别了
手动配置数据源
=========================================================================
public void main() throws Exception{
//创建数据源
DruidDataSource druidDataSource = new DruidDataSource(); //设置连接参数
druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
druidDataSource.setUrl("jd
bc:mysql://localhost:3309/one");
druidDataSource.setUsername("root");
druidDataSource.setPassword("1234");
//获取连接对象
DruidPooledConnection connection = druidDataSource.getConnection(); System.out.println(connection); }
========================================================================
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=rootjdbc.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 来配置数据源
================================================================================================
===============================================================================
将 DataSource 的创建权交给 Spring 容器去完成
DataSource 有无参构造方法,Spring 默认就是通过无参构造方法实例化对象
DataSource 要想使用需要通过 set 方法设置数据库连接信息,Spring 可以通过 set 方法进行注入
====================================================================================
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
评论