JDBC之数据源druild的使用

druild的使用和c3p0类似,druild的配置文件需要自己读取配置参数,c3p0会自动扫描配置文件且配置文件名称固定。

Druild使用的jar:commons-dbutils-1.4.jar

由于druild和上一篇c3p0的使用步骤基本一致,所以以下直接上代码:


import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DruidUtils {

    private DruidUtils(){}
    private static DataSource ds = null;
    static {
        try {
            Properties p = new Properties();
            p.load(new FileReader("src/druid.properties"));
            ds = DruidDataSourceFactory.createDataSource(p);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection(){
        try {
            return ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void closeResource(ResultSet rs, PreparedStatement ps, Connection conn){
        try {
            if(rs != null){
                rs.close();
                rs = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(ps != null){
                    ps.close();
                    ps = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally {
                try {
                    if(conn != null){
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void closeResource(PreparedStatement ps,Connection conn){
        try {
            if(ps != null){
                ps.close();
                ps = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(conn != null){
                    conn.close();
                    conn = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

调用工具类:

Connection conn = null;

PreparedStatement ps = null;

try {

   conn = DruidUtils.getConnection();

   ps = conn.prepareStatement("update users set name = ? where id = ?");

   ps.setString(1,"您好");

   ps.setString(2,"22222222222");

   if(ps.executeUpdate()>0){

      System.out.println("执行成功");

   }else{

      System.out.println("执行失败");

   }

} catch (SQLException e) {

e.printStackTrace();

}finally {

DruidUtils.closeResource(ps,conn);

}

猜你喜欢

转载自blog.csdn.net/qq_15076569/article/details/82192111
今日推荐