写点什么

Spring 系列之数据源的配置 数据库 数据源 连接池的区别

作者:Java高工P7
  • 2021 年 11 月 11 日
  • 本文字数:2042 字

    阅读完需:约 7 分钟

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


2.创建数据源对象


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


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


需要导入的坐标信息


junit


<dependency>


<groupId>junit</groupId>


<artifactId>junit</artifactId>


<version>4.13</version>


<scope>test</scope>


</dependency>


druid


=========================================================================


<dependency>


<groupId>com.alibaba</groupId>


<artifactId>druid</artifactId>


<version>1.0.9</version>


</dependency>


c3p0


========================================================================


<dependency>


<groupId>c3p0</groupId>


<artifactId>c3p0</artifactId>


<version>0.9.1.2</version>


</dependency>


spring—context


==================================================================================


<dependency>


<groupId>org.springframework</groupId>


<artifactId>spring-context</artifactId>


<version>5.0.3.RELEASE</version>


</dependency>


mysql


=========================================================================


<dependency>


<groupId>mysql</groupId>


<artifactId>mysql-connector-java</artifactId>


<version>5.1.32</version>


</dependency>


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


手动配置数据源


druid


=========================================================================


public void main() throws Exception{


//创建数据源


DruidDataSource druidDataSource = new DruidDataSource(); //设置连接参数


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


druidDataSource.setUrl("jd


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


bc: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=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 来配置数据源


================================================================================================



Spring 配置数据源


===============================================================================


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


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


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


在 Spring 容器中配置 Bean


====================================================================================


<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">


<property name="driverClass" value="com.mysql.jdbc.Driver"/>

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Spring系列之数据源的配置 数据库 数据源 连接池的区别