データベース接続プール(c3p0およびドルイド)

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.释放资源			 

おすすめ

転載: blog.csdn.net/qq_45788043/article/details/111599988
おすすめ