Skip to content

MVC开发结构及C3P0数据连接池的使用

494字约2分钟

javajdbc连接池

2024-10-24

1.Web应用控制器(Controller)

实现功能

1.请求路由(分清当前的业务请求)

2.接收参数

3.转换参数数据类型

4.填充数据对象

5.数据的传递

6.调用Dao类进行数据操作

7.存放结果到数据域

8.跳转页面

image-20211104205456196

C3P0数据连接池的使用

1.引入包

配置pom.xml文件

引入c3p0的包

 <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>

引入MySQL的包

<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.13</version>
    </dependency>

2.配置

创建c3p0.properties配置文件

#驱动,MySQL数据库的驱动
c3p0.driverClass=com.mysql.cj.jdbc.Driver  
#地址
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/DB_BOOK?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=CTT  
#用户名
c3p0.user=bookuser  
#密码
c3p0.password=123456  
#-------------------------------
#连接池初始化时创建的连接数
c3p0.initialPoolSize=3  
#连接池保持的最小连接数
c3p0.minPoolSize=3  
#连接池在无空闲连接可用时一次性创建的新数据库连接数,default:3
c3p0.acquireIncrement=3  
#连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,default : 15
c3p0.maxPoolSize=15  
#连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接,单位秒
c3p0.maxIdleTime=100  
#连接池在获得新连接失败时重试的次数,如果小于等于0则无限重试直至连接获得成功
c3p0.acquireRetryAttempts=30  
#连接池在获得新连接时的间隔时间
c3p0.acquireRetryDelay=1000

3.创建数据源对象

private static ComboPooledDataSource ds;
try {
	ds=new ComboPooledDataSource();
} catch (Exception e) {
	e.printStackTrace();
}
protected QueryRunner queryRunner=new QueryRunner(ds);

image-20211105162520211

检查配置文件,与resource目录是否在idea中有标记