我们写的是连接池吗?Connection对象绝对不能关。现在写的玩意不是连接池。因为现在讲的是JDBC,连接池也是JDBC里面的,人家那是SUN公司定义的标准。标准,你那不是标准。既然是标准,你做连接池得符合人标准。DataSource才是数据源/连接池。你要做一连接池必须实现这接口,所有的连接池必须实现这个接口。

DataSource是子接口,子接口有父接口嘛。父接口里面的方法也需要重写。

实现了DataSource接口之后我这个就是标准的连接池了。代码要耦合度降低,不要依赖于任何东西,要符合标准。JDBC标准里面Connection对象用完就要close,close()方法不再希望销毁Connection对象,而是把它放回到连接池。原来的close()方法是销毁,现在的close()方法也是销毁,但是我们希望它不是销毁,而是放回到连接池。是指放回到开源的连接池,不是我自己写的连接池,因为你自己写的连接池根本就没做这事。你自己写的连接池根本没实现这个功能。

继承是绝对不靠谱的,close()方法是Connection接口里面的。你不知道具体实现类,你要知道具体实现类也行。但是你要是使用具体实现类,那就要用到驱动程序里面的包了。用到驱动包里面的类又是紧密耦合了。继承也是能做增强的。

装饰模式。


连接池就是一个集合,里面装了几个Connection,用的时候就从里面取一个,取完之后就放回去,这就是最基本的连接池。什么是连接池?实现了DataSource接口。DataSource里面有个getConnection()方法获得连接,那怎么放回去呢?Connection自己的close()方法的行为已经改变了,连接池已经把那个方法的行为改变了,你一调用close()方法就放回去了。


day18 15.自定义连接池的更多相关文章

  1. JDBC连接池-自定义连接池

    JDBC连接池 java JDBC连接中用到Connection   在每次对数据进行增删查改 都要 开启  .关闭  ,在实例开发项目中 ,浪费了很大的资源 ,以下是之前连接JDBC的案例 pack ...

  2. java自定义连接池

    1.java自定义连接池 1.1连接池的概念: 实际开发中"获取连接"或“释放资源”是非常消耗系统资源的两个过程,为了姐姐此类性能问题,通常情况我们采用连接池技术来贡献连接Conn ...

  3. JDBC连接池原理、自定义连接池代码实现

    首先自己实现一个简单的连接池: 数据准备: CREATE DATABASE mybase; USE mybase; CREATE TABLE users( uid INT PRIMARY KEY AU ...

  4. JDBC自定义连接池

    开发中,"获得连接"和"释放资源"是非常消耗系统资源的,为了解决此类性能问题可以采用连接池技术来共享连接Connection. 1.概述 用池来管理Connec ...

  5. MySQL学习(六)——自定义连接池

    1.连接池概念 用池来管理Connection,这样可以重复使用Connection.有了池,我们就不用自己来创建Connection,而是通过池来获取Connection对象.当使用完Connect ...

  6. SpringBoot 整合mongoDB并自定义连接池

    SpringBoot 整合mongoDB并自定义连接池 得力于SpringBoot的特性,整合mongoDB是很容易的,我们整合mongoDB的目的就是想用它给我们提供的mongoTemplate,它 ...

  7. 自定义连接池DataSourse

    自定义连接池DataSourse 连接池概述: 管理数据库的连接, 作用: 提高项目的性能.就是在连接池初始化的时候存入一定数量的连接,用的时候通过方法获取,不用的时候归还连接即可.所有的连接池必须实 ...

  8. JAVA自定义连接池原理设计(一)

    一,概述 本人认为在开发过程中,需要挑战更高的阶段和更优的代码,虽然在真正开发工作中,代码质量和按时交付项目功能相比总是无足轻重.但是个人认为开发是一条任重而道远的路.现在本人在网上找到一个自定义连接 ...

  9. day18 17.c3p0连接池使用

    连接池时间长不用空闲着,dbcp是不回收的,性能可能有些问题.c3p0是可以自动回收.实际开发中c3p的生产力比dbcp强,性能上更强. package cn.itcast.datasource; i ...

随机推荐

  1. Joomla - K2组件(文章管理扩展)

    一.下载 K2 进入 https://getk2.org/ ,点击DOWNLOAD K2 下载K2 下载完毕得到一个安装包 二.安装 K2 进入看后台,点击顶栏主菜单 扩展管理 -> 扩展安装 ...

  2. Java-Druid:目录

    ylbtech-Java-Druid:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://yl ...

  3. nginx源码分析——数组

    ngx_array.h /* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_ARRAY_H_INCLU ...

  4. An invalid property 'jdbcType ' was found in mapping

    大概2种原因: 1 放进去的类型与字段的类型不匹配 2 比较变态,xml中=两边不能有空格! 错误示例如下:  #{plat,jdbcType = INTEGER}, 去掉空格后: #{plat,jd ...

  5. Python学习day42-数据库的基本操作(1)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  6. <每日一题>题目6:二分查找

    #二分查找 ''' 1.end问题 2.44对应的end<start 找不到情况 3.返回值递归的情况 4,611,aim太大的情况 ''' l = [2,3,5,10,15,16,18,22, ...

  7. 线性SVM分类器实战

    1 概述 基础的理论知识参考线性SVM与Softmax分类器. 代码实现环境:python3 2 数据处理 2.1 加载数据集 将原始数据集放入"data/cifar10/"文件夹 ...

  8. springboot 2 集成 redis 缓存 序列化

    springboot 缓存 为了实现是在数据中查询数据还是在缓存中查询数据,在application.yml 中将mybatis 对应的mapper 包日志设置为debug . spring: dat ...

  9. Postfix+Dovecot+MySQL搭建邮件服务器(续)

    上一篇中的原文中$7$是错的,应该用$6$, 找到: 原因可参考 https://passlib.readthedocs.io/en/stable/lib/passlib.hash.sha512_cr ...

  10. HZOI20190814 B 不等式

    不等式 题目大意:求解满足$L \leqslant(S×x)mod M\leqslant R$的x最小正整数解,无解输出-1 几种部分分: $L==R$,就是$ex_gcd$; 解在$1e6$以内:搜 ...