连接池的作用是为了避免频繁的与数据库连接操作,连接池与数据库进行连接;其中连接池中有许多连接对象,通过连接对象与数据库进行连接,而程序负责取走和归还连接对象,这样就减少了与数据库的连接。
如何实现呢?
1、导入对应坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
//导入数据库
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency>
2、创建连接池对象
创建连接池
DruidDataSource dataSource=new DrioDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver")//注册驱动
dataSource.setUrl("jdbc:mysql://localhost:3306/数据库名")
dataSource.setUsername("root")
dataSource.setPassname("***")
dataSource.setInitialSize(10) //初始连接数10
dataSource.setMaxActive(100)//最大连接数
3、获取连接对象
获取连接对象
dataSource.getConnection();
在ioc容器创建连接池
导入property文件
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${driverClassName}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${user_name}"></property>
<property name="password" value="${password}"></property>
<property name="maxActive" value="${maxActive}"></property>
</bean>
导入property文件
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb?serverTimezone=Asia/Shanghai&characterEncoding=utf-8
user_name=root 名不能为username
password=****
maxActive=10