druid连接池操作方法
使用DBUtils实现查询操作
使用DBUtils实现增删改操作
步骤:
- 拷贝jar
- 拷贝配置文件(c3p0-config.xml)到src目录【名字不要改】
- 创建C3P0连接池对象【自动的读取】
- 从池子里面获得连接
配置文件:
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/day21_1</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">5</property>
</default-config>
</c3p0-config>
编写Java代码
(会自动读取src目录下的c3p0-config.xml,所以不需要我们解析配置文件)
import org.junit.Test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class Peizhi {
public static void main(String[] args) throws Exception{
//拷贝c3p0jar包到模块下,并添加到classpath路径中
// 创建连接池对象
// ComboPooledDataSource dataSource=new ComboPooledDataSource();
//获得连接
//Connection connection = dataSource.getConnection();
Connection connection = C3P0Utils.getConnection();
//书写sql语句,预编译sql语句,得到预编译对象
String sql="select * from user where id=?";
PreparedStatement ps = connection.prepareStatement(sql);
//设置参数
ps.setInt(1,3);
//执行sql语句
ResultSet resultSet = ps.executeQuery();
//封装,处理数据
User user=null;
while (resultSet.next()) {
user=new User();
user.setId(resultSet.getInt("id"));
user.setUsername(resultSet.getString("username"));
user.setPassword(resultSet.getString("password"));
user.setNickname(resultSet.getString("nickname"));
}
System.out.println(user);
//释放资源--连接归还
C3P0Utils.release(resultSet,ps,connection);
}
//增加记录
@Test
public void insert() throws Exception{
//获得连接
Connection connection = C3P0Utils.getConnection();
//书写sql语句,预编译sql语句,得到预编译对象
String sql="insert into user value(null,?,?,?)";
PreparedStatement ps = connection.prepareStatement(sql);
//设置参数
ps.setString(1,"tq");
ps.setString(2,"123456");
ps.setString(3,"老田");
//执行sql语句,处理数据
int i = ps.executeUpdate();
System.out.println("受影响的行数:"+i);
//释放资源,连接归还
C3P0Utils.release(null,ps,connection);
}
}
改写c3p0工具类:
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class C3P0Utils {
//定义DataSource,保证DataSource全局只有一个
private static ComboPooledDataSource dataSource=new ComboPooledDataSource();
//定义getConnection()方法从DateSource获得连接
public static Connection getConnection()throws Exception{
Connection connection = dataSource.getConnection();
return connection;
}
//定义release方法,释放资源
public static void release(ResultSet resultSet, Statement statement,Connection connection){
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}