数据库连接池 --Druid 连接工具类创建_JDBCUtils
package com.itheima.jdbc_druid; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * JdbcUtils jdbc工具类 --Druid连接池的工具类 */ public class JdbcUtils { //创建成员变量 DataSource private static DataSource ds; static { try { //1.加载配置文件使用properties Properties pro = new Properties(); //1.1 加载文件 pro.load(JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties")); //2.使用工厂来获取数据连接池 DataSource ds = DruidDataSourceFactory.createDataSource(pro); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } /** * 获取连接对象方法 * @return * @throws SQLException */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } /* 释放资源 */ public static void close(Statement stmt,Connection conn){ close(null,stmt,conn); } /** * 释放资源 * @param rs * @param stmt * @param conn */ public static void close(ResultSet rs, Statement stmt, Connection conn){ if (stmt!=null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn!=null){ try { //此处的close是归还到连接池中,不是关闭。 conn.close(); } catch (SQLException e) { e.printStackTrace(); } } if (rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 获取连接池 * @return */ public static DataSource getDataSource(){ return ds; } }
如有错误,望费心指出。 感激涕零。