第三步:驱动连接池工具类Jdbcpool。
import com.example.excelimport.jdbc.util.BASEUtils;
import javax.sql.DataSource;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.LinkedList;
import java.util.logging.Logger;
public class Jdbcpool implements DataSource {
private static LinkedList coos = new LinkedList();
private static Connection coo;
private static int minpool = 20;
static {
int i = 0;
for (i = 0; i < minpool; i++) {
try {
coo = DriverManager.getConnection(BASEUtils.getDBURL(),
BASEUtils.getUSERNAME(), BASEUtils.getPASSWORD());
} catch (SQLException e) {
e.printStackTrace();
}
coos.add(coo);
new Connectionpool(coo, coos);
System.out.println("已加入了" + coos.size() + "个线程池");
}
}
public static void addgetConnection() throws SQLException {
int i = 3;
while (i < 3) {
try {
coo = DriverManager.getConnection(BASEUtils.getDBURL(),
BASEUtils.getUSERNAME(), BASEUtils.getPASSWORD());
} catch (SQLException e) {
e.printStackTrace();
}
coos.add(coo);
new Connectionpool(coo, coos);
i--;
}
}
@Override
public Connection getConnection() throws SQLException {
Connection coo = null;
if (coos.size() > 0) {
coo = coos.removeFirst();
System.out
.println("又一个连接对象被拿走:::::::连接池还有" + coos.size() + "个连接对象");
} else {
System.out.println("接口已被全部占用");
}
return coo;
}
@Override
public Connection getConnection(String username, String password)
throws SQLException {
return null;
}
@Override
public T unwrap(Class iface) throws SQLException {
return null;
}
@Override
public boolean isWrapperFor(Class> iface) throws SQLException {
return false;
}
@Override
public PrintWriter getLogWriter() throws SQLException {
return null;
}
@Override
public void setLogWriter(PrintWriter out) throws SQLException {
}
@Override
public void setLoginTimeout(int seconds) throws SQLException {
}
@Override
public int getLoginTimeout() throws SQLException {
return 0;
}
@Override
public Logger getParentLogger() throws SQLFeatureNotSupportedException {
return null;
}
}