zoukankan      html  css  js  c++  java
  • MySQL数据库 C3P0 连接池

    连接池的规范接口
     
    连接池的原理
    登录和注册
     
    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);
        }
    }
     
     
     
     
     
     

  • 相关阅读:
    Java学习小记 29
    Java学习小记 28
    Java学习小记 27
    Java学习小记 26
    Java学习小记 25
    Java学习小记 24
    Java学习小记 23
    Java学习小记 22
    Java学习小记 21
    Java学习小记 20
  • 原文地址:https://www.cnblogs.com/KiligYou/p/11018161.html
Copyright © 2011-2022 走看看