`
netix1999
  • 浏览: 13955 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java 数据库缓冲池(2) 使用c3p0

阅读更多

c3p0很容易使用的开源专业级jdbc数据库缓冲池。
它是sourceforge上的一个开源项目,
项目在 http://sourceforge.net/projects/c3p0
他的众多特性这里就不一一介绍了。
比较爽的一点就是
当Connection归还缓冲池时,c3p0会很小心的关闭
这条连接打开的Statement和ResultSet,免去了使用时
自己动手小心翼翼的关闭。

c3p0使用非常简单,这里给一个例子

package common.db;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;


import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;

public final class ConnectionManager {
 private static ConnectionManager instance;
 
 public ComboPooledDataSource ds;
 private static String c3p0Properties="c3p0.properties";
 
 private ConnectionManager() throws Exception {
  Properties p = new Properties();
  p.load(this.getClass().getResourceAsStream(c3p0Properties));
  ds = new ComboPooledDataSource();
 }
 
 public static final ConnectionManager getInstance() {
  if (instance == null) {
   try {
    instance = new ConnectionManager();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
  return instance;
 }
 
 public synchronized final Connection getConnection() {
  try {
   return ds.getConnection();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return null;
 }

 protected void finalize() throws Throwable {
  DataSources.destroy(ds); //关闭datasource
  super.finalize();
 }
 
}

然后在ConnectionManager类的目录下再创建一个配置文件c3p0.properties
内容如下:
#db login parameters
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost/test?useUnicode=no&characterEncoding=GBK
user=test
password=test

#pool parameters
initialPoolSize=2
maxPoolSize=5
#maxIdleTime=10
#idleConnectionTestPeriod=5
autoCommitOnClose=true

完整的配置文件参数参看c3p0的文档

使用connection时很简单
Connection conn = ConnectionManager.getInstance().getConnection();
...
最后 conn.close() 即可,

分享到:
评论

相关推荐

    c3p0数据库缓冲池配置说明

    ### c3p0数据库缓冲池配置说明 #### 一、概述 C3P0 是一个开源的 J2EE 连接池实现,它提供了一种简单的方法来管理和控制数据库连接资源,可以有效提高应用程序访问数据库的性能。在 Java 应用程序中,频繁地创建和...

    JAVA_java数据库连接池.pdf

    通常,开发者会借助第三方库,如Apache的DBCP、C3P0、HikariCP等,来实现数据库连接池的功能。 在设计数据库连接池时,需要考虑以下几个关键问题: 1. **并发控制**:为了保证多线程环境下的安全性,需要使用线程...

    c3p0_java开源连接池

    C3P0是一个开源的Java连接池,它实现了数据源和JDBC连接池的功能。连接池在数据库应用中起着至关重要的作用,因为它能够有效地管理数据库连接,避免频繁创建和销毁连接带来的性能开销。在没有连接池的情况下,每次...

    JAVA数据库连接池.pdf

    在Java中,虽然JDBC API本身并不包含连接池功能,但可以通过第三方库如C3P0、Apache DBCP、HikariCP等实现连接池功能。 数据库连接池的基本原理是预先在内存中创建一定数量的数据库连接,这些连接存储在一个缓冲池...

    JAVA_java数据库连接池[借鉴].pdf

    在JDBC API中虽然没有内置的连接池功能,但可以通过第三方库如C3P0、Apache DBCP、HikariCP等实现。 连接池的基本工作原理是预先在内存中创建一组数据库连接,并存储在一个缓冲池中。当应用程序需要连接数据库时,...

    c3p0-0.9.1.2

    **c3p0缓冲池详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0-0.9.1.2是该库的一个特定版本,提供了对数据库连接管理的高效、稳定的服务。在Java应用中,尤其...

    JAVA_java数据库连接池(20210930142524).pdf

    在Java中,虽然JDBC API并没有直接提供连接池的功能,但可以通过第三方库实现,如Apache的DBCP、C3P0、HikariCP等。 连接池的基本原理是预先在内存中创建一定数量的数据库连接,并存储在一个缓冲池中。当应用程序...

    JAVA_java数据库连接池(20210925001831)[借鉴].pdf

    在Java中,虽然JDBC API并没有直接提供连接池的功能,但可以通过第三方库实现,如C3P0、Apache DBCP、HikariCP等。 连接池的基本原理是预先在内存中创建一个缓冲池,池中包含一定数量的数据库连接。当应用程序需要...

    缓冲池 (2).doc.zip

    在实际应用中,Java的数据库连接池如C3P0、HikariCP、Druid等也采用了缓冲池的概念。它们维护了一个数据库连接的池子,当需要连接数据库时,从池中获取而不是每次创建新的连接,这样可以显著减少创建和销毁连接的...

    C3P0的jar包

    5. **性能优化**:C3P0提供了多种性能优化策略,如自动预热连接、连接池的缓冲区设置等,可以进一步提升数据库访问效率。 6. **异常处理**:C3P0提供了一套完整的异常处理机制,当数据库连接出现问题时,能够及时...

    java访问数据库集合

    在Java中,如Apache的DBCP、C3P0和HikariCP都是常见的连接池实现。使用连接池能显著减少数据库连接创建和销毁的时间,改善系统性能。 Spring框架提供了全面的数据库访问支持,包括JDBC抽象层和ORM(Object-...

    数据库连接池技术

    数据库连接池技术是一种在应用程序中管理和复用数据库连接的机制,它通过维护一个数据库连接的“缓冲池”来提高数据库操作的效率和资源利用。在Java编程中,常见的数据库连接池实现有c3p0和dbcp。 **数据库连接池的...

    java及数据库性能优化

    - **数据库连接池**:通过数据库连接池(如C3P0、HikariCP等)管理数据库连接,复用连接,减少连接和断开的开销。这不仅可以提高性能,还能根据负载自动调整连接数量。 - **JDBC优化**:使用预编译的SQL语句...

    java数据库表同步

    2. **数据库连接池**:如C3P0、HikariCP、Apache DBCP等,它们可以提高数据库操作的效率,减少频繁创建和关闭连接的开销,对于大量数据库操作的同步至关重要。 3. **触发器和存储过程**:在数据库级别实现同步的一...

    dbcp,c3p0,io

    本主题将深入探讨两个流行的数据库连接池实现:C3P0和DBCP,以及与输入流、输出流相关的IO操作。 首先,让我们详细了解C3P0。C3P0是由Miquel Piera开发的一个开源数据库连接池,它提供了一个健壮的连接池实现,支持...

    java链接数据库驱动

    常见的连接池实现有C3P0、HikariCP、Apache DBCP和Tomcat JDBC等。 5. PreparedStatement和CallableStatement `PreparedStatement`用于执行预编译的SQL语句,可以防止SQL注入,提高执行效率。`CallableStatement`...

    jsp 课程设计 有数据库支持 servlet 、javabean 、缓冲池、过滤器等多种技术

    为了提高系统性能和资源利用率,项目中可能使用了数据库连接池,如C3P0或HikariCP。连接池可以预先创建并管理一定数量的数据库连接,避免频繁的建立和关闭连接,从而减少系统开销。 **过滤器(Filter)** 过滤器在...

    数据库连接池

    常见的开源数据库连接池实现有Apache的DBCP、C3P0、HikariCP以及Tomcat的Tomcat-jdbc-pool等,它们都提供了丰富的配置选项和优秀的性能。 总结,数据库连接池通过管理和复用数据库连接,提高了系统性能,降低了资源...

    Oracle,DB2,mysql的驱动以及用Java连接数据库的方法

    在实际应用中,为了提高性能和资源利用率,通常会使用连接池(如C3P0、HikariCP、Apache DBCP等)。连接池预先初始化并管理一定数量的数据库连接,应用程序需要时可以从池中获取,用完后归还。 6. SSL安全连接: ...

Global site tag (gtag.js) - Google Analytics