数据库连接池 电玩女神 2022-06-09 05:28 337阅读 0赞 ## 数据库连接池 ## ### 1.概述 ### > 数据库连接池就是存放数据库连接(Connection)的集合 > 我们获取一个数据库连接是一个相对很麻烦的过程,如果我们获取一个数据库连接,使用一次以后就给它关闭了,下一次再去使用的时候就要重新创建一个新的数据库连接。 > 所以我们提出了一个数据库连接池的概念,数据库连接池放的都是数据库连接(Connection)我们在去使用数据库连接时候,不用再去重新创建数据库连接,而是直接从池中获取,使用完的数据库连接,也不是直接销毁,而是要放回到连接池。 ### 2.数据库连接池的常见属性 ### > * 初始连接数量:数据连接池创建以后,保存数据库连接的数量 > * 最小空闲连接数:数据库连接池最少得未使用的数据库连接的数量 > * 最大空闲连接数:数据库连接池最大闲置连接数,当闲置连接数满了以后,将不会有其他连接进入池 > * 每次增加连接数:当数据库连接都被占用以后,一次性增加的数据库连接的个数 > * 最大连接数:数据库连接池的最大容量,当最大连接数饱和了,则不再创建新的数据库连接 > * 最大等待时间:当数据库连接池饱和以后,等待获取数据库连接的时间 ### 3.常见的数据库连接池 ### * DBCP * DBCP是Apache出品的一款数据库连接 * DBCP依赖于commons-pool * 使用DBCP需要导入两个jar包: * commons-dbcp-1.4.jar * commons-pool-1.5.5.jar * 当我们通过数据库连接池获取数据库连接以后,我们所获取到数据库连接已经不是我们熟悉的那个Connection 数据库连接池对Connection对象进行了包装,它修改Connection的close()方法,再去调用close()数据库连接将不会真的关闭,而是要放回到数据库连接池中,供其他线程使用。 * 核心类: BasicDataSourceFactory * C3P0(重点) * C3P0使用的是XML作为配置文件 * 使用c3p0需要导入一个jar包: c3p0-0.9.1.2.jar * 导入c3p0的配置文件: 1.配置文件的名字:c3p0-cofig.xml 2.配置文件要求放到类路径下(src) * 核心类: ComboPooledDataSource **注意:** DataSource就相当于池子,我们的数据库连接都是从DataSource中获取的,如果程序中有多个DataSource的实例,那么我们说你还不如不用数据库连接池。所以我们的**DataSource在项目中应该只有一个实例。** -------------------- ## 引入外部属性文件 ## jdbc.properties文件: jdbc.username=root jdbc.password=123456 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test 在applictionContext.xml配置文件上加入 <context:property-placeholder location="classpath:jdbc.properties"/> 在目标属性上加@Value注解 @Value(“$\{jdbc.user\}”) private String username; 在applictionContext.xml配置文件上配置: <!-- 根据外部属性文件中的信息配置数据源 --> <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.passowrd}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> <property name="driverClass" value="${jdbc.driver}"></property> </bean> 在单元测试文件上就可以使用数据库连接池的连接了 ComboPooledDataSource bean = ioc.getBean(ComboPooledDataSource.class); Connection connection = bean.getConnection(); System.out.println(connection); Statement st = connection.createStatement(); ResultSet rs = st.executeQuery("select * from stu"); while(rs.next()){ String string = rs.getString("name"); String string2 = rs.getString("school"); System.out.println(string+"==="+string2); }
相关 数据库-----数据库连接池 @百度百科 ![Center][] [Center]: /images/20220721/39979dcdad014fb6a1579254a5398d26.png 古城微笑少年丶/ 2022年09月21日 11:56/ 0 赞/ 315 阅读
相关 数据库连接池 连接池原理 连接池技术的核心思想是:连接复用,通过建立一个数据库连接池以及一套连接使用、分配、治理策略,使得该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立 水深无声/ 2022年08月02日 09:37/ 0 赞/ 59 阅读
相关 数据库连接池 author:skate time:2010-10-13 -------------------- 数据库连接池的工作原理 连接池就是连接数据库对象的缓冲存 柔情只为你懂/ 2022年07月14日 16:46/ 0 赞/ 48 阅读
相关 数据库连接池 数据库连接池 1.概述 > 数据库连接池就是存放数据库连接(Connection)的集合 > 我们获取一个数据库连接是一个相对很麻烦的过程,如果我们获取一个数据 电玩女神/ 2022年06月09日 05:28/ 0 赞/ 338 阅读
相关 数据库连接池 连接池:把连接放在一个池里,它里面有很多连接 会给你空闲的连接使用,Java从数据源里面的得到连接 (线程池把连接放进去,会有连接的标志--占用/空闲 你去拿时-- 给你/等 一时失言乱红尘/ 2022年05月16日 00:16/ 0 赞/ 375 阅读
相关 数据库连接池 public class java_数据库连接池 { //1.定义变量 //管理数据连接池对象 private ComboPool 妖狐艹你老母/ 2022年05月11日 14:24/ 0 赞/ 247 阅读
相关 数据库连接池 连接池直接使用别人提供的就可以,需要做的就是导入jar包和配置文件的使用按照他们的规范 jar包有 (fastjson.jar包可以不要,这个是使用json和前端进行数据交 快来打我*/ 2022年05月04日 03:27/ 0 赞/ 369 阅读
相关 数据库连接池 要是考虑到JDBC连接中用到Connection 在每次对数据进行增删查改都要开启、关闭,在实例开发项目中,浪费了很大的资源。因此采用连接池技术。 //数据库连接 pub 秒速五厘米/ 2022年02月14日 00:27/ 0 赞/ 414 阅读
相关 数据库连接池 今日知识 1. c3p0和Druid使用 2. DBUtils使用 3. SpringJDBC轻量级框架 4. 总结 c3p0和Dru 小鱼儿/ 2021年11月29日 10:36/ 0 赞/ 493 阅读
相关 数据库连接池 传统的jdbc连接数据库方式如下: 我们需要几个步骤:注册 JDBC 驱动程序注册( Class.forName(DRIVER\_NAME) ),通过DriverManag 爱被打了一巴掌/ 2021年09月10日 05:40/ 0 赞/ 611 阅读
还没有评论,来说两句吧...