连接池(DataSource)
当我们需要使用连接时,可以不用创建连接。可以直接从连接池获取连接。当连接池中存在控线连接时,将会给程序分配控线连接使用。当连接池中不存在空闲连接,并且连接池未满时,创建新的连接给程序使用,并在程序使用完毕后缓存连接。当连接池中不存在空闲连接,并且连接池已满时,则排队等候空闲连接出现。无论是否使用连接池,都应该在操作完毕后释放连接(调用close())。 从连接池中调用的连接,当调用close()方法。连接并不是被关闭,而是重新放回连接池,作为空闲连接等待使用。
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(); }