Spring配置数据源(连接池)
1.数据源(连接池)的作用:为了提高程序的性能而出现的
 2.数据源的原理:
 *事先实例化数据源,初始化部分连接资源
 *使用连接资源时从数据源中获取
 *使用完毕后将连接资源归还给数据源
使用c3p0的步骤
 1.导入相应的依赖(还有jdbc相关的依赖)
 <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1</version>
    </dependency>
2.具体操作
public class DataSourceTest {
    @Test
    //测试手动创建c3p0
    public void test1() throws PropertyVetoException, SQLException {
   		 //实例化c3p0数据源
        ComboPooledDataSource dataSource=new ComboPooledDataSource();
        //设计基本的连接参数
        dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/ssm_crud?serverTimezone=UTC");
        dataSource.setUser("root");
        dataSource.setPassword("hao20001010");
        //获取资源
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        //归还数据源
        connection.close();
    }
}
使用Druid的步骤
 1.导入相应依赖
  <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.2</version>
    </dependency>
2.具体操作
 @Test
    //测试Druid
    public void test2() throws SQLException {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost/ssm_crud?serverTimezone=UTC");
        dataSource.setUsername("root");
        dataSource.setPassword("hao20001010");
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }
我们发现这样耦合度太高,所以我们可以单独创建一个配置文件保存连接配置数据
 1.创建jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_crud?serverTimezone=UTC
jdbc.username=root
jdbc.password=hao20001010
2.测试c3p0
  @Test
    //测试手动创建c3p0(加载properties配置文件)
    public void test3() throws PropertyVetoException, SQLException {
        //读取配置文件 -->getBundle获取的是当前工作目录resources下的路径,而且不需要写扩展名.properties
        ResourceBundle rb=ResourceBundle.getBundle("jdbc");
        String driver=rb.getString("jdbc.driver");
        String url = rb.getString("jdbc.url");
        String username = rb.getString("jdbc.username");
        String password = rb.getString("jdbc.password");
        //创建数据源对象,设置连接参数
        ComboPooledDataSource dataSource=new ComboPooledDataSource();
        dataSource.setDriverClass(driver);
        dataSource.setJdbcUrl(url);
        dataSource.setUser(username);
        dataSource.setPassword(password);
        //获取资源
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        connection.close();
    }
###-》这是为了解耦
Spring配置数据源(连接池)的更多相关文章
- (七)Spring 配置 c3p0 连接池
		目录 在 Spring 核心配置文件中配置 c3p0 连接池 配置 JdbcTemplate 对象 在 service 层注入 userDao 在 UserDao 里面注入 JdbcTemplate ... 
- 搭建spring工程配置数据源连接池
		Spring作为一个优秀的开源框架,越来越为大家所熟知,前段时间用搭了个spring工程来管理数据库连接池,没有借助Eclipse纯手工搭建,网上此类文章不多,这里给大家分享一下,也作为一个手记. 工 ... 
- spring配置druid连接池和监控数据库访问性能
		Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ... 
- spring配置c3p0连接池
- spring 配置c3p0连接池
		一.导入与c3p0相关的jar包 二.xml配置文件 CombopooledDataSource类中提供了相应属性的set方法,因此可是使用属性注入的方式实例化对象. 三.示例 在userServic ... 
- Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate
		Spring配置c3p0连接池和dao使用jdbcTemplate 1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 原始方式 (1)把代码在配置 ... 
- Spring系列 之数据源的配置 数据库 数据源 连接池的区别
		Spring系列之数据源的配置 数据源,连接池,数据库三者的区别 连接池:这个应该都学习过,比如c3p0,druid等等,连接池的作用是为了提高程序的效率,因为频繁的去创建,关闭数据库连接,会对性能有 ... 
- JdbcTemplae使用入门&&Spring三种连接池配置&&Spring配置文件引用外部properties文件
		JdbcTemplate的使用 Spring为了各种支持的持久化技术,都提供了简单操作的模版和回调. JdbcTemplate 简化 JDBC 操作HibernateTemplate 简化 Hiber ... 
- springboot添加多数据源连接池并配置Mybatis
		springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018 ... 
随机推荐
- RENIX 软件RAW流发送——网络测试仪实操
			本文主要介绍了RENIX软件如何进行RAW流发送操作.文章通过预约端口.添加RAW流.修改负载.发送流量.查看流统计.数据包捕获六个步骤详细介绍了操作过程. 步骤一:预约端口.1.先安装RENIX软件 ... 
- 6月28日  Django form组件 和 modelform组件
			Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ... 
- 4月26日 python学习总结 JoinableQueue、线程、三种锁
			一.进程队列补充-创建进程队列的另一个类JoinableQueue JoinableQueue同样通过multiprocessing使用. 创建队列的另外一个类: JoinableQueue([max ... 
- Ubuntu下使用C语言连接Mysql 8.0客户端教程
			Ubuntu下如何C语言程序连接MYSQL 8.0(全教程) 1. 安装GCC(略) 2. 安装mysql(本人使用的是最新MySQL 8.0版本) sudo apt install mysql-cl ... 
- [FromBody]List<string> 用PostMan如何请求
			在MVC项目,写了一个API方法,如下: /// <summary>/// 测试/// </summary>/// <param name="idList&qu ... 
- 题解0004:单词接龙(洛谷P1019)
			题目描述:已知一组单词,给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙"中出现两次),在两个单词相连时,其重合部分合为一部分. 题 ... 
- 如何处理异形屏iphone X?
			safe area: 默认放置在安全区域以避免遮挡, 但会压缩 在meta中添加viewport-fit=cover: 告诉浏览器要讲整个页面渲染到浏览器中,不管设备是圆角与否,这个时候会造成页面的元 ... 
- 我对arguments.callee的理解
			基本理解: 你怎么看待一个函数呢?又如何看待一个函数对象呢?函数和Function之间的关系到底是什么?我觉得理解这些对理解arguments.callee有所帮助. 先说说auguments.cal ... 
- mybatis基础(全)
			参考链接:Mybatis学习系列(一)入门简介 Mybatis学习系列(二)Mapper映射文件 Mybatis学习系列(三)动态SQL Mybatis学习系列(四)Mapper接口动态代理 Myba ... 
- jQuery--事件案例(鼠标提示)
			1.文字提示 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ... 
