dbcp方法:
1--jar包: commons-collections4-4.0.jar commons-dbcp2-2.1.1.jar commons-pool2-2.4.2.jar
2--配置Spring IOC容器,读取 jdbc.properties 配置文件到内存里(也可以不配置该文件,具体后文会讲到)
jdbc.properties 配置如下(以Oracle为例,前后不要有空格 ,同时需要加入Oracle驱动包:c3p0-0.9.1.jar):
username=用户名
password=密码
driverclassname=oracle.jdbc.driver.OracleDriver
url==jdbc\:oracle\:thin\:@localhost\:1521\:xe
Spring IOC容器(applicationContext.xml),如下方式注入
3--注入到DataSource中,
jar包:commons-dbcp2-2.1.1.jar
如果配置了第二步,继续如下配置:
如果没有配置第二步,就将property对应的name值,直接赋值即可;
如果使用dpcp方法还有如下常用属性:
defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为 true;
defaultReadOnly:设置数据源是否仅能执行只读操作, 默认值为 false;
maxActive:最大连接数据库连接数,设置为0时,表示没有限制;
maxIdle:最大等待连接中的数量,设置为0时,表示没有限制;
maxWait:最大等待秒数,单位为毫秒, 超过时间会报出错误信息;
validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据,
如你可以简单地设置为:“select count(*) from user”;
removeAbandoned:是否自我中断,默认是 false ;
removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值;
logAbandoned:是否记录中断事件, 默认为 false;
4--配置jdbcTemplate(Spring自带的辅助类 ,jar包:spring-jdbc-4.2.1.RELEASE.jar)
jdbcTemplate:使用模板方式封装jdbc数据库操作,固定的流程操作,提供丰富的callback回调接口功能,方便公户自定义 加工细节跟好模块化jdbc操作,简化传统
配置如下:
5--注入到一个UserDaoImp类中(因为注入需要jdbcTemplate, 必须定义个该类型的成员变量)
UserDaoImp如下定义
public class PersonDaoImp implements PersonDao{}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {注入配置如下:
测试方法如下:
@Test
public void test01(){
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
PersonDao pd=(PersonDao) ac.getBean("personDaoImp");
pd.save();
}
如果是用c3p0:
只需导入c3p0jar包
将第二步改为
.
.
同时参数略有不同
以上配置可以进行简化;
第四步和第五步 是将DataSource注入到JdbcTemplate,在注入到UserDaoImp;也有进行修改
让UserDaoImp继承JdbcDaoSupport类; 当设置了DataSource属性的时候,会创建jdbcTemplate实例,
UserDaoImp修改为:
public class PersonDaoImp02 extends JdbcDaoSupport implements PersonDao{
@Override
public void save() {
System.out.println("person保存了");
System.out.println(this.getJdbcTemplate().getDataSource());
}
}
第四部和第五步合并如下:
最后的总结:
jar: c3p0-0.9.1.jar; ojdbc14.jar
commons-collections4-4.0.jar; commons-dbcp2-2.1.1.jar; commons-logging-1.2.jar; commons-pool2-2.4.2.jar
spring-beans-4.2.1.RELEASE.jar; spring-context-4.2.1.RELEASE.jar; spring-core-4.2.1.RELEASE.jar;
spring-expression-4.2.1.RELEASE.jar; spring-jdbc-4.2.1.RELEASE.jar; spring-tx-4.2.1.RELEASE.jar