zoukankan      html  css  js  c++  java
  • 2020-11-11日报博客-周三

    1.学到的东西:

    image-20201215155430861

    数据库连接池

    1. 概念:其实就是一个容器(集合),存放数据库连接的容器。
    	    当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
    
    2. 好处:
    	1. 节约资源
    	2. 用户访问高效
    
    3. 实现:
    	1. 标准接口:DataSource   javax.sql包下的
    		1. 方法:
    			* 获取连接:getConnection()
    			* 归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而是归还连接
    
    	2. 一般我们不去实现它,有数据库厂商来实现
    		1. C3P0:数据库连接池技术
    		2. Druid:数据库连接池实现技术,由阿里巴巴提供的
    
    
    4. C3P0:数据库连接池技术
    	* 步骤:
    		1. 导入jar包 (两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,
    			* 不要忘记导入数据库驱动jar包
    		2. 定义配置文件:
    			* 名称: c3p0.properties 或者 c3p0-config.xml
    			* 路径:直接将文件放在src目录下即可。
    
    		3. 创建核心对象 数据库连接池对象 ComboPooledDataSource
    		4. 获取连接: getConnection
    	* 代码:
    		 //1.创建数据库连接池对象
            DataSource ds  = new ComboPooledDataSource();
            //2. 获取连接对象
            Connection conn = ds.getConnection();
    
    package cn.itcast.datasource.c3p0;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    /**
     * c3p0的演示
     */
    public class C3P0Demo1 {
        public static void main(String[] args) throws SQLException {
            //1.创建数据库连接池对象
            DataSource ds  = new ComboPooledDataSource();
            //2. 获取连接对象
            Connection conn = ds.getConnection();
    
            //3. 打印
            System.out.println(conn);
    
        }
    }
    
    
    package cn.itcast.datasource.c3p0;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    /**
     * c3p0演示
     */
    public class C3P0Demo2 {
    
        public static void main(String[] args) throws SQLException {
           /* //1. 获取DataSource,使用默认配置
            DataSource ds  = new ComboPooledDataSource();
    
            //2.获取连接
    
            for (int i = 1; i <= 11 ; i++) {
                Connection conn = ds.getConnection();
                System.out.println(i+":"+conn);
    
                if(i == 5){
                    conn.close();//归还连接到连接池中
                }
            }*/
    
            //testNamedConfig();
    
        }
    
    
        public static void testNamedConfig() throws SQLException {
            // 1.1 获取DataSource,使用指定名称配置
            DataSource ds  = new ComboPooledDataSource("otherc3p0");
            //2.获取连接
            for (int i = 1; i <= 10 ; i++) {
                Connection conn = ds.getConnection();
                System.out.println(i+":"+conn);
            }
        }
    
    }
    
    

    2.遇到的问题:数据库连接池的使用

    3.明日计划:继续练习JDBC技术

  • 相关阅读:
    Security基础(二):SELinux安全防护、加密与解密应用、扫描与抓包分析
    Security基础(一):Linux基本防护措施、使用sudo分配管理权限、提高SSH服务安全
    勤奋之致,功成之始
    Database基础(七):部署集群基础环境、MySQL-MMM架构部署、MySQL-MMM架构使用
    Database基础(六):实现MySQL读写分离、MySQL性能调优
    Database基础(五):使用binlog日志、XtraBackup备份工具、MySQL AB复制
    Database基础(四):密码恢复及设置、 用户授权及撤销、数据备份与恢复、MySQL管理工具
    Database基础(三):SQL数据导入/导出、 操作表记录、查询及匹配条件
    vue-打包上线
    vue报错-Object(...) is not a function
  • 原文地址:https://www.cnblogs.com/gongyunlong-blogs/p/14139192.html
Copyright © 2011-2022 走看看