JDBC-连接池

it2023-07-20  69

连接池(DataSource)

当我们需要使用连接时,可以不用创建连接。可以直接从连接池获取连接。当连接池中存在控线连接时,将会给程序分配控线连接使用。当连接池中不存在空闲连接,并且连接池未满时,创建新的连接给程序使用,并在程序使用完毕后缓存连接。当连接池中不存在空闲连接,并且连接池已满时,则排队等候空闲连接出现。

无论是否使用连接池,都应该在操作完毕后释放连接(调用close())。 从连接池中调用的连接,当调用close()方法。连接并不是被关闭,而是重新放回连接池,作为空闲连接等待使用。

DBCP连接池的使用步骤

1.导入相关jar文件 dbcp.jar poll.jar 2.引入配置文件 3.将配置文件转化为Properties对象 4.通过连接池工厂类(basicDataSourceFactory)创建连接池的方法 5.从连接池中获取连接对象

//将配置文件转化为Properties对象 Properties ppt = new Properties(); ppt.load(输入流); //通过连接池工厂类(basicDataSourceFactory)创建连接池的方法(createDataSource()) DataSource ds = BasicDataSourceFactory.createDataSource(ppt); //从连接池中获取连接对象 Connection conn = ds.getConnection();

实例:

public static void main(String[] args) throws Exception { Properties ppt = new Properties(); InputStream is = Demo.class.getClassLoader().getResourceAsStream("dbcp.properties"); ppt.load(is); //通过连接池工厂类,创建连接池 DataSource dataSource = BasicDataSourceFactory.createDataSource(ppt); //通过连接池获取连接 Connection conn = dataSource.getConnection(); Statement state = conn.createStatement(); state.executeUpdate("insert into person values(4,'谢永强')"); state.close(); conn.close(); }

德鲁伊连接池的使用步骤

1.导入相关jar文件 druid-1.0.9.jar

2.引入配置文件 3.将配置文件转化为Properties对象 Properties ppt = new Properties(); ppt.load(配置文件的输入流); 4.通过连接池工厂类(DruidDataSourceFactory)创建连接池的方法(createDataSource()). DataSource ds = DruidDataSourceFactory.createDataSource(ppt); 5.从连接池中获取连接对象 Connection conn = ds.getConnection();

实例:

public static void main(String[] args) throws Exception { Properties ppt = new Properties(); InputStream is = Demo.class.getClassLoader().getResourceAsStream("druid.properties"); ppt.load(is); //通过连接池工厂类,创建连接池 DataSource dataSource = DruidDataSourceFactory.createDataSource(ppt); //通过连接池获取连接 Connection conn = dataSource.getConnection(); Statement state = conn.createStatement(); state.executeUpdate("insert into person values(4,'谢永强')"); state.close(); conn.close(); }

德鲁伊连接池工具类

public class DruidUtil { private static DataSource dataSource; static{ try{ Properties ppt = new Properties(); InputStream is = DruidUtil.class.getClassLoader().getResourceAsStream("druid.properties"); ppt.load(is); dataSource = DruidDataSourceFactory.createDataSource(ppt); }catch(Exception e){ e.printStackTrace(); } } public static Connection getConnection(){ try { return dataSource.getConnection(); } catch (SQLException throwables) { throwables.printStackTrace(); } return null; } public static void close(Connection conn, Statement state, ResultSet rs){ try { rs.close(); } catch (Exception throwables) { throwables.printStackTrace(); } try { state.close(); } catch (Exception throwables) { throwables.printStackTrace(); } try { conn.close(); } catch (Exception throwables) { throwables.printStackTrace(); } } }
最新回复(0)