6.数据库连接池--->因为连接(Connection)建立在try catch中会被频繁的删除,在频繁的建立连接会拖延系统的时间,因此引入了数据库池。
*概念:其实就是一个容器,存放数据库连接的容器;当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库的时候,从容器中获取连接对象,用户访问完后,将会把连接对象归还给容器。
例子:这下所有的服务员被一家公司集中管理,餐馆需要服务员时直接去公司申请,不在需要自己去去找服务员(高效),这样节约了自己找人的成本,因为公司集中化管理给的价格也更低(节约了资源)
*好处,优点:
1.节约系统的资源(集中管理连接对象,更资源分配更均匀)
2.高效(不需要向底层申请,节约时间,申请和返回不需要底层的参加)
*实现
1.标准的接口:DataSource (java.sql包内的)
1.方法;
*获取连接:getConnection()---->获取连接
*归还连接:如果连接对象Connetion是从连接池中获取的,那么调用的不是关闭连接,而是归还连接到容器中,他们名字都相同,意义不同;调用Connection.close();
2.一般我们不去实现它,有数据库厂商来实现
1.C3P0:数据库连接池技术
2.Druid:数据库连接池实现技术,有阿里巴巴提供。
3.C3P0:数据库连接池技术
*步骤
1.导入jar包(两个) C3P0-0.9.2.jar and mchange-commons-java-0.2.12.jar还有导入mysql的驱动包
2. 定义配置文件:
*名称:c3p0.properties 或者 c3p0-config.xml(名称是固定了的,其自带的有)
*路径:ClassPath路径下(类路径下),直接将文件放在src目录下
3.创建核心对象,数据库连接池对象ComboPooledDataSource
4.获取连接:getConnection
4.Druid:数据库连接池,由阿里巴巴提供
1.步骤:
1.导入jar包 druid-1.0.9.jar
2.定义配置文件
*是properties形式的
*可以叫任意名称,放置在任意位置
3.加载配置文件,properties
4.获取数据库的连接池对象;通过工厂类来获取 DruidDataSourceFactory
5.获取连接:getConnection();
2.定义一个工具类
1.定义一个类 JDBCUtils
2.使用静态代码块来加载配置文件properties,初始化连接池对象。
3.提供的方法
1.获取连接方法:通过数据库连接池获取连接
2.提供一个获取连接池对象的方法
3.释放资源
数据库连接池 (c3p0和druid)
猜你喜欢
转载自blog.csdn.net/qq_45788043/article/details/111599988
今日推荐
周排行