1.新建项目(spring_jdbc)项目结构如下
2.导入支持包jar如上
3.实现spring整合c3p0
(1)准备数据库
-- 创建数据库
create database springjdbc;
-- 创建表
CREATE TABLE `ar_role` (
`rid` int(10) NOT NULL AUTO_INCREMENT,
`rname` varchar(20) DEFAULT NULL COMMENT '角色名',
`alias` varchar(20) DEFAULT NULL COMMENT '别名',
PRIMARY KEY (`rid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- 插入数据
-- ----------------------------
INSERT INTO `ar_role` VALUES ('1', '系统管理员', 'admin');
INSERT INTO `ar_role` VALUES ('2', '调度员', 'dispa');
(2)两种实现方式
1.直接赋值
package com.linxin.spring;
import java.beans.PropertyVetoException;
import javax.sql.DataSource;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class jdbctemplate {
@Test
public void testSave1() throws PropertyVetoException{
//准备连接池
ComboPooledDataSource dataSource= new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/springjdbc");
dataSource.setUser("root");
dataSource.setPassword("root");
JdbcTemplate jt= new JdbcTemplate(dataSource);
String sql="insert into "+"ar_role(rname,alias)"
+"value(?,?)";
jt.update(sql,"test1","test1");
}
}
2.读取(c3p0-config.xml 方式)
(1)在src下新建c3p0-config.xml(名字固定)
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverCalss">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://39.108.131.123:3306/springjdbc</property>
<property name="user">root</property>
<property name="password">10086.10010</property>
</default-config>
</c3p0-config>
(2)在src下新建包(com.linxin.spring.utils)类dataSourceUtil.java
package com.linxin.spring.utils;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DataSourceUtil {
// 准备c3po 连接池对象
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
/**
* 直接获取连接池
*
* @return 连接池
*/
public static DataSource getDataSource() {
return dataSource;
}
}
(3)新建测试类
package com.linxin.spring;
import java.beans.PropertyVetoException;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import com.linxin.spring.utils.DataSourceUtil;
public class jdbctemplate {
@Test
public void testSave2() throws PropertyVetoException, SQLException{
//准备连接池
DataSource dataSource= DataSourceUtil.getDataSource();
JdbcTemplate jt= new JdbcTemplate(dataSource);
String sql="insert into "+"ar_role(rname,alias)"
+"value(?,?)";
jt.update(sql,"test3","test3");
}
}