`
piperzero
  • 浏览: 3456192 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java基础--jdbc--各种池的实现--02

 
阅读更多

程序设计中,通常会涉及各类池,如锁池,等待池,jdbc数据库连接池。

下面以数据库连接池来展示各种池的实现:

1.利用LinkedList数据结构来来保存池中的应用对象。

2.为了保证并发请求对池的访问,对池设置同步操作了。

3.对池的容量进行设定。兼容以前池中对象的操作方式,满足池中对象以前的使用方式,但又不影响到池,通过代理实现。

4. 组合优先于继承。

public class MyDataSource {
private static String url = "jdbc:mysql://localhost:3306/jdbc";
private static String user = "root";
private static String password = "";

private static int initCount = 5;
private static int maxCount = 10;
private int currentCount = 0;

LinkedList<Connection> connectionsPool = new LinkedList<Connection>();

public MyDataSource() {
try {
for (int i = 0; i < initCount; i++) {
this.connectionsPool.addLast(this.createConnection());
this.currentCount++;
}
} catch (SQLException e) {
throw new ExceptionInInitializerError(e);
}
}

public Connection getConnection() throws SQLException {
synchronized (connectionsPool) {
if (this.connectionsPool.size() > 0)
return this.connectionsPool.removeFirst();

if (this.currentCount < maxCount) {
this.currentCount++;
return this.createConnection();
}

throw new SQLException("已没有链接");
}
}

public void free(Connection conn) {
this.connectionsPool.addLast(conn);
}

private Connection createConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
}

分享到:
评论

相关推荐

    xmljava系统源码-elasticsearch-jdbc:elasticsearch-jdbc,在elasticsearch-sql的jd

    2.0.x版本最先是在的的基础上修改而来,修改和补充了部分jdbc规范,使之能够和mybatis结合,sql支持度可参考elasticsearch-sql,引入了,实现了mybatis+rest api的方式操作elasticsearch。提供了Java api的工具类...

    JDBC数据库编程实验

    (4)理解JDBC中实现事务处理的基本方法; (5)理解数据库连接池的基本原理和思想,学会在tomcat服务器中配置数据库连接池,并掌握从连接池中获取连接的基本方法。 (6)初步理解数据访问层的基本设计方法,理解web...

    Java_JDBC由浅入深

    比较实用,基础 目录 第一节 整理目的 3 第二节 jdbc的概念 3 2.1概念 3 2.2 Jdbc与应用程序的关系 3 2.3 数据库的连接步骤 4 2.4 Quick Start 4 第三节 如何与数据库建立连接 6 3.1 注册驱动 6 3.2 建立数据库的...

    JDBC 3.0数据库开发与设计

    9.2.1 使用JavaBean和连接池实现数据分页显示 9.2.2 不用连接池不用JavaBean的分页显示 9.2.3 使用JavaBean不使用连接池的分页显示 9.2.4 用JSP和Servlet配合实现分页显示 9.3 数据库图形文件的存取技术 9.3.1 ...

    21天学通java源码-training-java:围绕增量项目进行的为期2个月的全职Java培训。Java/JSP/Servlet/Mave

    21天学通java源码培训:计算机数据库 内容 此培训材料包含要在计算机数据库 Web 应用程序中实现的一系列步骤和功能。 以下是所有里程碑的宏观规划和时间表: t0 - 项目开始 t0+2 - 基础架构、CLI(添加/编辑功能)、...

    JavaEE求职简历-姓名-JAVA开发工程师-范文.doc

    熟练掌握 使用jdbc标准连接数据库,掌握DDL、DML、DCL、DQL和C3P0\DBCP连接池的使用; 熟练掌握 Mysql 数据库select、insert、update、delete、modify等基本操作和聚合函数、子集、排序、分组、索引查询、子查询...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Java面试宝典-经典

    Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    学生信息管理系统(实现增删改查操作)Java+Servlet+HTML+CSS+数据库

    java部分:程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、实用类、JDBC、三层架构Druid连接池、Apache的DBUtils使用、Servlet等。 数据库部分:创建表、增删改查语句的书写等。 ...

    JDBC API教程与参考手册part4

    对于那些学习Java技术的新手而言,本书还介绍了Java编程语言和SQL的基础知识。以此为起点,您将学习如何建立数据库、如何建立连接、如何从结果集中获取值以及如何使用准备语句,从而学会创建完整的JDBC应用程序。...

    JDBC API教程与参考手册part3

    对于那些学习Java技术的新手而言,本书还介绍了Java编程语言和SQL的基础知识。以此为起点,您将学习如何建立数据库、如何建立连接、如何从结果集中获取值以及如何使用准备语句,从而学会创建完整的JDBC应用程序。...

    JDBC API教程与参考手册part2

    对于那些学习Java技术的新手而言,本书还介绍了Java编程语言和SQL的基础知识。以此为起点,您将学习如何建立数据库、如何建立连接、如何从结果集中获取值以及如何使用准备语句,从而学会创建完整的JDBC应用程序。...

    比较全面的:Jakarta-commons jar包(附: chm参考手册 & 资源简介)

    它包含三个主要的领域:Utility classes-提供一些静态方法来完成公共任务.Filters-提供文件过滤器的各种实现.Streams-提供实用的Stream,reader与 writer实现 commons-jelly 能够把XML转换成可执行代码,所以Jelly...

    java web技术开发大全(最全最新)

    有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头...

    java web开发技术大全

    有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本...

    java基础题 很全面

    Java基础 6 1. 面向对象的特征有哪些方面 6 2. String是最基本的数据类型吗? 7 3. int 和 Integer 有什么区别 7 4. String 和StringBuffer的区别 7 5. 运行时异常与一般异常有何异同? 7 6. 说出ArrayList,Vector, ...

    HikariCP-benchmark:JDBC连接池的JHM基准

    JMH连接池微基准开发此基准集是为了完善 JDBC连接池实现,但实际上它在多个池中运行相同的基准。 我们已经了解到,使用Dead Code Elimination(DCE),锁合并,内联,循环展开,栈上替换(OSR)和无数其他技巧的JVM...

    基于springboot的微服务基础脚手架+源代码+文档说明

    # 简介 springboot-skeleton 是一个基于...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    2023Java高频面试题

    Java基础知识:Java的基本数据类型、变量、运算符、控制语句等基础概念。 面向对象编程:类、对象、封装、继承、多态等面向对象编程的基础知识。 Java集合框架:常用的List、Set、Map等集合类及其实现方式、使用场景...

Global site tag (gtag.js) - Google Analytics