C3P0连接池的操作方法

druid连接池操作方法
使用DBUtils实现查询操作
使用DBUtils实现增删改操作

步骤:

  1. 拷贝jar
  2. 拷贝配置文件(c3p0-config.xml)到src目录【名字不要改
  3. 创建C3P0连接池对象【自动的读取】
  4. 从池子里面获得连接

配置文件:

<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();
            }
        }
    }
}

Mysql中数据设置:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值