JDBCUtil:
public class JDBCUtils
{
private JDBCUtils
() {}
//获得连接
private static String url
;
private static String username
;
private static String password
;
static
{
//注册驱动
try
{
url
= "jdbc:mysql://localhost:3306/test_db";
username
= "root";
password
= "123";
Class.forName
("com.mysql.jdbc.Driver");
} catch
(ClassNotFoundException e
) {
throw new RuntimeException
(e
);
}
}
public static Connection getConnection
() throws SQLException
{
Connection con
= DriverManager.getConnection
(url, username, password
);
return con
;
}
public static void close
(ResultSet rs, Statement sta,Connection con
){
try
{
if
(rs
!=null
){
rs.close
();
}
} catch
(SQLException e
) {
e.printStackTrace
();
}
try
{
if (sta
!=null
){
sta.close
();
}
} catch
(SQLException e
) {
e.printStackTrace
();
}
try
{
if (con
!=null
){
con.close
();
}
} catch
(SQLException e
) {
e.printStackTrace
();
}
}
}
C3P0Util工具类:
Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口. 方法 Connection getConnection() 从连接池中获取连接 所以,如果想从连接池中获取到连接对象 只需要创建DataSource对象 调用getConnection方法即可 但是DataSource是一个接口 不能创建对象 我们需要创建DataSource的实现类对象 调用getConnection
c3p0连接池实现了Java中的DataSource这个接口 实现类是ComboPooledDataSource 我们只需要创建这个类的对象 调用getConnection方法就可以了
c3p0-config.xml
<c3p0-config
>
<!-- 使用默认的配置读取连接池对象 --
>
<default-config
>
<!-- 连接参数 --
>
<property name
="driverClass">com.mysql.jdbc.Driver
</property
>
<property name
="jdbcUrl">jdbc:mysql://localhost:3306/day03_db
</property
>
<property name
="user">root
</property
>
<property name
="password">123
</property
>
<!-- 连接池参数 --
>
<property name
="initialPoolSize">5
</property
>
<property name
="maxPoolSize">10
</property
>
<property name
="checkoutTimeout">2000
</property
>
<property name
="maxIdleTime">1000
</property
>
</default-config
>
</c3p0-config
>
C3P0Util
public class C3P0_Utils
{
private C3P0_Utils
(){}
private static ComboPooledDataSource pool
;
static
{
pool
= new ComboPooledDataSource
();
//设置连接池的必要属性
(使用配置文件后不再需要
)
//pool.setDriverClass
("com.mysql.jdbc.Driver");
//pool.setJdbcUrl
("jdbc:mysql://127.0.0.1:3306/test_db");
//pool.setUser
("root");
//pool.setPassword
("root");
}
public static Connection getConnection
() throws SQLException
{
Connection con
= pool.getConnection
();
return con
;
}
public static void close
(ResultSet rs, Statement sta, Connection con
){
try
{
if
(rs
!=null
){
rs.close
();
}
} catch
(SQLException e
) {
e.printStackTrace
();
}
try
{
if
(sta
!=null
){
sta.close
();
}
} catch
(SQLException e
) {
e.printStackTrace
();
}
try
{
if (con
!=null
){
con.close
();
}
} catch
(SQLException e
) {
e.printStackTrace
();
}
}
}