博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL数据库 C3P0 连接池
阅读量:5243 次
发布时间:2019-06-14

本文共 2276 字,大约阅读时间需要 7 分钟。

连接池的规范接口
 
连接池的原理
登录和注册
 
package cn.kgc.c3p0;
 
import com.mchange.v2.c3p0.ComboPooledDataSource;
 
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class UtilsC3P0 {
    /**
     * 创建C3P0工具类 使用C3P0获得连接对象
     * 连接池有一个规范接口 javax.sql.DateSource接口
     * 定义了一个从连接池中获得连接的方法
     * getConnection()
     * 步骤
     * 0.   导入jar包
     * 1.   在成员位置创建一个静态ComboPooledDataSource对象
     * 2.   在静态代码块使用ComboPooledDataSource对象
     *      setXxx方法设置数据库连接
     * 3.   定义一个静态方法ComboPooledDataSource对象中获得数据库连接Connection
     * 4.   释放资源
     */
    //1.在成员位置创建一个静态ComboPooledDataSource对象
    private static ComboPooledDataSource dataSource=new ComboPooledDataSource();
    //2.在静态代码块中使用ComboPooledDataSource对象的setXxx方法 设置数据库连接
    static {
        try {
            //设置注册驱动
            dataSource.setDriverClass("com.mysql.jdbc.Driver");
            //url
            dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/day4");
            //数据库用户名
            dataSource.setUser("root");
            //数据库密码
            dataSource.setPassword("123456");
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
    }
    //3.定义一个静态方法ComboPooledDataSource对象中获得数据库连接Connection
    public static Connection getConnection(){
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException("数据库连接失败"+e);
        }
    }
    //4.释放资源
    public static void close(ResultSet rs, Statement state,Connection conn){
        if (rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (state!=null){
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn!=null){
            try {
                conn.close();//归还
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
 
 
 
 
 
 
 
package cn.kgc.c3p0;
 
import com.mchange.v2.c3p0.cfg.C3P0Config;
import org.junit.Test;
 
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class TestUtilsC3P0 {
    @Test
    public void test01() throws SQLException {
        //使用c3p0工具类获得getConnection
        Connection conn = UtilsC3P0.getConnection();
        System.out.println(conn);
        //获得执行者对象
        Statement state = conn.createStatement();
        //执行SQL语句
        ResultSet rs = state.executeQuery("SELECT * FROM users");
        while (rs.next()){
            System.out.println(rs.getInt("uid")+" "+rs.getString("username")+" "+rs.getString("password"));
        }
        //关闭资源
        UtilsC3P0.close(rs,state,conn);
    }
}
 
 
 
 
 
 

转载于:https://www.cnblogs.com/KiligYou/p/11018161.html

你可能感兴趣的文章
恶心的struts标签,等我毕业设计弄完了,瞧我怎么收拾你。
查看>>
Linux中防火墙centos
查看>>
hudson+apachecontinuum+ant
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
实验五 TCP传输及加密
查看>>
【iOS】build diff: /../Podfile.lock: No such file or directory
查看>>
【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
查看>>
FancyCoverFlow
查看>>
教你一分钟实现动态模糊效果
查看>>
C++中explicit的用法
查看>>
java 企业站源码 兼容手机平板PC 响应式 主流SSM框架 freemaker 静态引擎
查看>>
AliOS编译安装MyRocks
查看>>
JS博客
查看>>
Docx转Doc操作(c#)
查看>>
Docker——error pulling image configuration
查看>>
一条简单的 SQL 执行超过 1000ms,纳尼?
查看>>
Python函数(一)之杵臼之交
查看>>
关于将qt作为max插件ui库所遇到的困难
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>