经常使用hibernate,在使用hibernate的时候经常使用到DBCP和C3P0的连接池,某天自己突然想起自己来实现一个连接池。test了下,效果还可以,随记录之
import java.sql.Connection; import java.sql.DriverManager; import java.util.Stack; public class ConnManager { private static final int MIN_CONN = 2; private static final int MAX_CONN = 5; private static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=RJ_Thesis"; private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String USER ="sa"; private static final String PASW= "sa"; private int connAmount = 0; private static Stack<Connection> connStack ; static { connStack = new Stack<Connection>(); try { Class.forName(DRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); } } private static ConnManager instance; public static synchronized ConnManager getInstance(){ if(null != instance){ return instance; } return new ConnManager(); } private ConnManager(){ for(int i = 0 ; i < MIN_CONN ; i++){ connStack.push(newConnection()); } } public synchronized void freeConnection(Connection con){ connStack.push(con); notifyAll(); } public synchronized Connection getConnection(){ Connection con = null; if(!connStack.isEmpty()){ con = connStack.pop(); }else if(connAmount < MAX_CONN){ con = newConnection(); }else{ try { wait(1000); return getConnection(); } catch (InterruptedException e) { e.printStackTrace(); } } return con; } private Connection newConnection(){ try { Connection connection = DriverManager.getConnection(URL, USER, PASW); ++connAmount; return connection; } catch (Exception e) { e.printStackTrace(); } return null; } }
发表评论
-
java中线程池
2016-06-26 16:31 401最近在看线程池的类容,自己动手实现一个 package ... -
jvm常用设置
2015-09-08 22:48 423在我们实际工作中,可能会经常对JVM有一些设置,但是很多设置都 ... -
WebService相关
2015-07-26 21:55 1012之前由于工作需要 ... -
java RMI
2015-07-23 23:04 467JAVA RMI相关 分布 ... -
java 流传输压缩包
2015-07-14 23:14 623有的时候,页面上的下载文件是从后台使用流的形式下载来的,而不是 ... -
java 网络传输文件
2015-06-01 21:14 471package sterning; import java. ... -
java MD5加密
2015-03-30 14:41 335MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性 ... -
java 并发容器
2014-12-18 23:19 388在多线程的开发 ... -
java设计模式 之 builder模式
2014-12-11 22:19 449最近在看java设计模式,看到builder模式感觉十分不错, ... -
网上见到一篇compareTo文章较好,收藏之
2014-12-04 21:04 5801、compareTo(Object o)方法是jav ... -
Hibernate 和 spring 整合使用
2014-10-14 21:28 789在hibernate和spring时总结的一些知识,以供将来查 ... -
hiernate 集中管理session
2014-10-13 21:55 524问题: 使用hibern ... -
java写入txt文件
2014-05-22 23:10 1159File file = new File("d: ... -
POI读取excel
2014-05-22 23:05 945读取excel大概在java中有两种方法,选用apache的P ... -
定时器 quartz 和 spring
2014-04-17 23:30 522最近学习了一个quartz 和spring 的定时调度 这个 ... -
java 基于Struts2的 文件上传和下载
2014-04-03 22:56 566文件上传: 页面代码: <form action=' ... -
java IO
2014-03-23 23:23 446import java.io.BufferedReader ... -
自己写的一个JDBC工具类
2014-03-11 20:00 1202在最近的一段时间写毕业设计,由于本科阶段的毕业设计不是特别大的 ... -
java汉字数字转换成阿拉伯数字
2014-02-20 17:14 6606今天做一个日期转换的时候发现有些时间是用大写汉字写成的,需 ...
相关推荐
本实例提供了完美的Java JDBC连接池配置,适用于Oracle、MySQL和SQL Server等主流数据库,允许开发者轻松地在不同数据库之间切换方言。 首先,让我们了解什么是JDBC连接池。JDBC(Java Database Connectivity)是...
Java JDBC连接池是一种高效管理数据库连接的技术,它允许应用程序重复使用已经建立的数据库连接,从而减少频繁创建和关闭连接带来的开销。在大型系统中,尤其是高并发环境下,使用连接池能够显著提升性能并降低资源...
- HikariCP:目前被认为是最快的Java JDBC连接池,它设计的主要目标是速度、简单性和低资源占用。 - Druid:阿里巴巴开源的数据库连接池,具有监控、扩展性好的特点。 - Tomcat JDBC Connection Pool:Tomcat...
标题"完美的java jdbc连接池实例.zip"暗示了这是一个关于如何高效利用JDBC连接池的实例教程。这个压缩包可能包含了一些示例代码、配置文件以及详细的使用说明,旨在帮助开发者理解并实践如何在Java项目中正确设置和...
Java JDBC 数据库连接池总结 Java 语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁。在 Web 应用开发的早期,主要使用的技术是 CGIASPPHP 等。之后,Sun 公司推出了基于 Java 语言的 ...
本资源提供了实现Java JDBC连接池所需的相关jar包,包括: 1. cp30.jar:这是一个C3P0连接池的库文件,它是一个开源的JDBC连接池,除了提供基本的连接池功能外,还具有异常检测、自动关闭空闲连接、支持JNDI绑定等...
这是我写的一个对JDBC连接池的实现,高手见了可不要笑啊!!!! 程序是在linux下用Eclipse下编写的. 用Jude进行建模,数据库使用了mysql. 程序自带了MySql的Connection连接驱动类,你也可以使用别的驱动类和数据库, 在src/...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点包括: 1. **自动管理数据库连接**:C3P0会自动创建、配置和管理数据库连接,避免了频繁创建和销毁连接...
Java JDBC连接池是一种高效管理数据库连接的技术,它允许应用程序重复使用已经建立的数据库连接,而不是每次需要时都创建新的连接。这显著提高了性能并减少了系统资源的消耗,尤其是在高并发的环境中。本类库提供了...
HikariCP是一款高效、高性能的Java JDBC连接池,它被设计为替代传统连接池如C3P0和DBCP,以提供更快、更稳定的数据访问性能。在HikariCP v3.4.5这个版本中,我们可以深入探讨其在数据库连接管理、性能优化以及配置...
Java JDBC 数据库连接池总结 Java JDBC 数据库连接池是 Java 应用程序访问数据库的基本原理之一。Java 语言通过 JDBC 技术访问数据库,JDBC 是一种“开放”的方案,为数据库应用开发人员和数据库前台工具开发人员...
Tongweb5是一款基于Java的Web应用服务器,它支持配置JDBC连接池来管理数据库连接。本文将详细介绍如何在Tongweb5中配置JDBC连接池,以及Web应用如何通过JNDI(Java Naming and Directory Interface)查找并使用这些...
Java JDBC 数据库连接池技术是Java应用程序访问数据库的关键优化手段,尤其在Web应用程序中,它解决了传统JDBC连接方式存在的效率低下和资源浪费问题。Java JDBC(Java Database Connectivity)是Java语言与各种...
JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,而JDBC连接池则是一种对数据库连接进行管理和复用的技术。它预先创建并维护一定数量的数据库连接,当应用程序需要连接数据库时,可以从连接池中...
Java-JDBC【源码】数据库连接池技术、常规操作与Durid对比、测试(20-200)不同连接数下,10万记录,1万并发,CPU磁盘占用情况 1.数据库连接池 2.Durid介绍(官方文档) 3.编码,问题,常规并发操作 3.1.JDBCUtil....
在Java开发中,数据库操作是不可或缺的一部分,而JDBC连接池是提高数据库访问效率、优化系统资源使用的重要技术。本文将深入探讨JDBC连接池的概念、工作原理,并以"通用basedao"模板为例,讲解如何在实际项目中应用...
JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一组接口和类,而JDBC连接池就是在这个基础上实现的一种优化策略。本文将详细介绍JDBC连接池驱动的相关知识,主要涉及`mysql-connector-java-...
本示例中的"简单的jdbc连接池类"实现了一个基本的数据库连接池功能,非常适合初学者理解和实践。 首先,我们来理解`jdbc`。JDBC(Java Database Connectivity)是Java语言用来与各种数据库进行交互的一种标准接口。...
DBCP(Jakarta DBCP,又称为Apache Commons DBCP)是Apache软件基金会提供的一款开源的JDBC连接池实现,它为Java开发者提供了方便、高效的数据库连接管理功能。 DBCP工具包的出现,主要是为了解决频繁创建和销毁...