使用C3p0连接池连接数据库
package com.test.c3p0;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mchange.v2.c3p0.ComboPooledDataSource;
//有三种方式获取到配置文件信息,一种是xml,一种是properties,一种是System配置,如下的系统配置
public class C3p0Util {
// 连接池可以极大的改善用户的 Java 应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:
// 减少连接创建时间 虽然与其它数据库相比 GBase 提供了较为快速连接功能,但是创建新的 JDBC
// 连接仍会招致网络和 JDBC 驱动的开销。如果这类连接是“循环”使用的,使用该方式这些花销就可避免。
// 简化的编程模式 当使用连接池时,每一个单独的线程能够像创建了一个自己的 JDBC 连接一样操作,允许用
// 户直接使用JDBC编程技术。 受控的资源使用 如果用户不使用连接池,而是每当线程需要时创建一个新的连接,
// 那么用户的应用程序的资源使用会产生非常大的浪费并且可能会导致高负载下的异常发生。
// 配置了C3P0作为连接池子,调用服务器Connection连接时,在调用完了之后会将连接返还回去。
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
public static Connection getConnection(){
try {
return dataSource.getConnection(); } catch (SQLException e) { throw new RuntimeException("服务器繁忙!"); } }
public static void closeAll(ResultSet rs,PreparedStatement ps,Connection conn){
if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }rs=null; }if(ps!=null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); }ps=null; }if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }conn=null; }}
//这是System配置方式:
// static{
// try {
// dataSource.setDriverClass( “org.postgresql.Driver” );
// dataSource.setJdbcUrl( “jdbc:postgresql://localhost/testdb” );
// dataSource.setUser(“swaldman”);
// dataSource.setPassword(“test-password”);
// dataSource.setMinPoolSize(5);
// dataSource.setAcquireIncrement(5);
// dataSource.setMaxPoolSize(20);
// } catch (Exception e) {
//
// e.printStackTrace();
// }
//
// }
}
//配置XML信息:
//应用C3p0实现对数据库的增删改查
import java.sql.Connection;
import java.sql.PreparedStatement;
import org.junit.Test;
public class C3p0DBCP {
@Test
public void test(){
Connection conn=null;
PreparedStatement ps=null;
//使用连接池创建链接
try {
conn=C3p0Util.getConnection(); System.out.println(conn.getClass().getName()); //插入数据数据
// ps=conn.prepareStatement(“insert into users(username,password,email,birthday) values (‘ls’,‘8848’,‘416@qq.com’,‘2020-3-31 14:57:00’)”);
// ps.executeUpdate();
//删除数据
// ps=conn.prepareStatement(“delete from users where id=7”);
// ps.executeUpdate();
//修改数据
// ps=conn.prepareStatement(“update users set username=‘mht’ where id=7”);
// ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
C3p0Util.closeAll(null, ps, conn);
}
}
- 点赞
- 收藏
- 分享
- 文章举报
- 让Hibernate自动重新连接数据库——使用c3p0连接池
- 02-使用C3P0连接池连接MySql并且使用QueryRunner简化数据库操作
- 让Hibernate自动重新连接数据库——使用c3p0连接池
- 使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
- 用WINXP2+DW+ACCESS使用本地 ASP.NET 和 ASP 服务器时数据库连接失败
- 使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
- 使用VB6编写组件隐藏数据库的连接字符串
- 2006/05/15 ora数据库使用左连接随笔
- 如何通过使用 ADO.NET 2005 和 Visual C# 2005 或使用 ADO.NET 和 Visual C# .NET 连接到数据库并运行命令
- 使用OLE DB连接各种类型的数据库的连接字符串
- 在Pocket PC中使用Web Service连接数据库
- 使用Tomcat 连接池 连接数据库的实例
- 使用DAAB 3.1连接Sybase ASE 11.9.2数据库的两个问题(原创)
- Visual Studio 2005 初体验之三:使用DBFactory class连接数据库
- ASP.NET中使用web.config配置web应用程序中的数据库连接
- 使用JDBC-ODBC方式连接数据库时,如何在代码中指定ODBC数据源信息
- 使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
- 数据中心使用dtu远程连接oracel 9i数据库问题
- 在Visual Basic.NET使用ADO访问数据库(转for各种数据库连接)
- 在Asp中使用断开式数据库连接