JdbcTemplate(1)(数据连接池)
一、环境准备
1.1 导入JAR包
①IOC容器所需要的JAR包
commons-logging-1.1.1.jar
spring-beans-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-expression-4.0.0.RELEASE.jar
百度云盘
链接:http://pan.baidu.com/s/1kUEwhwj
密码:z3yt
②JdbcTemplate所需要的JAR包
spring-jdbc-4.0.0.RELEASE.jar
spring-orm-4.0.0.RELEASE.jar
spring-tx-4.0.0.RELEASE.jar
百度云盘:
链接:http://pan.baidu.com/s/1o7VQUqY
密码:dhwm
③数据库驱动和数据源
c3p0-0.9.1.2.jar
mysql-connector-java-5.1.7-bin.jar
百度云盘
链接:http://pan.baidu.com/s/1dEOHLO9
密码:bjhw
二、创建连接数据库基本属性文件
2.1 、jdbc.properties文件
jdbc.password=123456
jdbc.dirver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/login
initialPoolSize=30
minPoolSize=10
maxPoolSize=100
acquireIncrement=5
maxStatements=1000
maxStatementsPerConnection=10
2.2、属性说明
初始连接数量:数据连接池创建以后,保存数据库连接的数量(initialPoolSize)
最小空闲连接数:数据库连接池最少得未使用的数据库连接的数量 (minPoolSize)
最大空闲连接数:数据库连接池最大闲置连接数,当闲置连接数满了以后,将不会有其他连接进入池(maxPoolSize)
每次增加连接数:当数据库连接都被占用以后,一次性增加的数据库连接的个数(acquireIncrement)
最大连接数:数据库连接池的最大容量,当最大连接数饱和了,则不再创建新的数据库连接(maxStatements=)
最大等待时间:当数据库连接池饱和以后,等待获取数据库连接的时间(maxStatementsPerConnection)
三、在Spring配置文件中配置相关bean
3.1 、数据源对象
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"/>
<property name="password" value="${password}"/>
<property name="jdbcUrl" value="${jdbcUrl}"/>
<property name="driverClass" value="${driverClass}"/>
<property name="initialPoolSize" value="${initialPoolSize}"/>
<property name="minPoolSize" value="${minPoolSize}"/>
<property name="maxPoolSize" value="${maxPoolSize}"/>
<property name="acquireIncrement" value="${acquireIncrement}"/>
<property name="maxStatements" value="${maxStatements}"/>
<property name="maxStatementsPerConnection" value="${maxStatementsPerConnection}"/>
</bean>
3.2 、JdbcTemplate对象
<bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
四、持久化操作
4.1 、增删改
JdbcTemplate.update(String, Object...)
4.2 、批量增删改
JdbcTemplate.batchUpdate(String, List<Object[]>)
Object[]封装了SQL语句每一次执行时所需要的参数
List集合封装了SQL语句多次执行时的所有参数
4.3查询多行
JdbcTemplate.queryForObject(String, RowMapper<Department>, Object...)
4.4查询单一值
JdbcTemplate.queryForObject(String, Class, Object...)