标签:new pwd final 静态代码块 .exe back one upd else
自定义连接池一: 1.sun提供了一个连接池接口 javax.sql.DataSource。 2.定义连接池MyDataSource实现接口DataSource。 3.使用集合LinkedList<Connection> pool存放多个连接对象。LinkedList移除添加操作效率高。连接对象还是和以前一样调用工具类JDBCUtils里的getConnection。(第一篇JDBC的有介绍) 4.书写获取连接的方法getConnection(),获取连接改为从池子中拿对象。 5.书写归还连的方法backConnection()。把从池子pool中获取的对象归还。 我们需要三个类:
1.JDBCUtils(第一篇JDBC的随笔有介绍如何书写)
2.MyDataSource
3.TestMyDataSource
注:测试用的Junit。
一、书写MyDataSource方法,此处不实现接口DataSource
package com.it.JDBC; import java.sql.Connection; import java.util.LinkedList; /** * @author Payphone * @time 2017-10-07 自定义连接池,未增强close方法 * */ public class MyDataSource { private static Connection conn; private static LinkedList<Connection> pool = new LinkedList<Connection>(); /** * 构造方法初始化连接池个数,也可用静态代码块初始化。 * */ public MyDataSource() { for (int i = 0; i < 5; i++) { conn = JDBCUtils.getConnection(); pool.add(conn); } System.out.println("---------分割线---------"); } /** * 获取连接 * */ public Connection getConnection() { System.out.println("连接前的个数:" + pool.size()); conn = pool.remove(0); System.out.println("连接后的个数:" + pool.size()); return conn; } /** * 归还连接 * */ public void backConnection() { System.out.println("释放连接前的个数:" + pool.size()); pool.add(conn); System.out.println("释放连接后的个数:" + pool.size()); } }
二、书写测试方法TestMyDataSource
自定义连接池一代码并不完善,我们调用了工具类JDBCUtils.Release方法释放了除conn外的对象。又调用了md.backConnection方法归还conn。
在自定义连接池二的代码中我们将增强close方法。调用工具类JDBCUtils.Release方法归还连接。
标签:new pwd final 静态代码块 .exe back one upd else
原文地址:http://www.cnblogs.com/ljwdemo/p/7636102.html