最简单的数据库连接池(SQLlite)
其他
2018-07-15 13:15:05
阅读次数: 0
其中prop是从xml文件中读取数据库配置参数
package com.airport.demo.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.Properties;
public class SQLlitePool {
private static String driver=null;
private static String url=null;
public static LinkedList<Connection> pool;
private static int poolSize=15;
static {
PropertiesLoad prop=new PropertiesLoad();
driver=prop.driver;
url=prop.url;
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
pool=new LinkedList<Connection>();
for (int i = 0; i < poolSize; i++) {
try {
Connection con = DriverManager.getConnection(url);
pool.addLast(con);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static Connection getConnection() {
if (pool.size()>0&&!(pool.getLast()==null)) {
Connection conn=pool.getLast();
pool.removeLast();
return conn;
}
try {
System.out.println("连接池中没有连接,已经自动创建连接");
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection con = DriverManager.getConnection(url);
pool.addLast(con);
return con;
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println("连接池获取连接错误");
return null;
}
public static boolean freeConnection(Connection conn) {
if (pool.size()<SQLlitePool.poolSize&&pool.size()>0) {
pool.addLast(conn);
return true;
}
return false;
}
}
转载自blog.csdn.net/qq_29048719/article/details/76169040