通过连接池C3P0编写工具类,操作mysql

1 导入jia包:c3p0-0.9.1.2.jar     mchange-commons-java-0.2.11.jar    mysql-connector-java-5.1.37-bin.jar

2 不使用配置文件c3p0-0.9.1.2.jar编写工具类

public class C3P0Utils {

    private static ComboPooledDataSource ds = new ComboPooledDataSource();
    
    //static代码块设置数据库连接四大要素
    static{
        try {
            ds.setDriverClass("com.mysql.jdbc.Driver");
            ds.setJdbcUrl("jdbc:mysql://localhost:3306/day04");
            ds.setUser("root");
            ds.setPassword("123");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public static Connection getConnection() throws SQLException{
        //获取连接,不要自己去DriverManager获取,而是从C3P0连接池获取
        return ds.getConnection();
    }
    
    //关闭所有资源的统一代码
    public static void closeAll(Connection conn,Statement st,ResultSet rs){
        //负责关闭
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(st != null){
            try {
                st.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

3 使用配置文件c3p0-0.9.1.2.jar编写工具类(注意:配置文件名不能改变)

public class C3P0Utils02 {

    private static ComboPooledDataSource ds = new ComboPooledDataSource();
    
    //ds对象直接去加载C3P0-config.xml文件,自动加载里面的四大要素,获得数据库加载与连接
    
    public static Connection getConnection() throws SQLException{
        //获取连接,不要自己去DriverManager获取,而是从C3P0连接池获取
        return ds.getConnection();
    }
    
    //关闭所有资源的统一代码
    public static void closeAll(Connection conn,Statement st,ResultSet rs){
        //负责关闭
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(st != null){
            try {
                st.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

4 C3P0测试类

public class C3P0UtilsTestDemo {
    public static void main(String[] args) throws SQLException {
//        insert();
//        delete();
        query();
    }
    
    //插入
    public static void insert() throws SQLException{
        //1.获取连接
        Connection conn = C3P0Utils02.getConnection();
        //2.获取执行对象
        Statement st = conn.createStatement();
        //3.执行sql
        int rows = st.executeUpdate("insert into users (username,password) values ('王八','123321')");
        System.out.println(rows);
        //4.
        C3P0Utils02.closeAll(conn, st, null);
    }
    //删除
    public static void delete() throws SQLException{
        //1.获取连接
        Connection conn = C3P0Utils02.getConnection();
        //2.获取执行对象
        Statement st = conn.createStatement();
        //3.执行sql
        int rows = st.executeUpdate("delete from users where uid = 7");
        System.out.println(rows);
        //4.
        C3P0Utils02.closeAll(conn, st, null);
    }
    //查询
    public static void query() throws SQLException{
        //1.获取连接
        Connection conn = C3P0Utils02.getConnection();
        //2.获取执行对象
        Statement st = conn.createStatement();
        //3.执行sql
        ResultSet rs = st.executeQuery("select * from users");
        while(rs.next()){
            System.out.println(rs.getObject("uid")+"\t"+rs.getObject("username")+"\t"+rs.getObject("password"));
        }
        //4.
        C3P0Utils02.closeAll(conn, st, null);
    }
    
}

猜你喜欢

转载自www.cnblogs.com/zsj03180204/p/11118871.html
今日推荐