您的位置:首页 > 产品设计 > UI/UE

Java使用ConcurrentLinkedQueue实现简易数据库连接池

2018-02-07 16:24 483 查看
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.concurrent.ConcurrentLinkedQueue;

public class Main {

private static String user="trans";
private static String password="oracle";
private static String url="jdbc:oracle:thin:@xx.xxx.xx.xxx:1521:Cxxx";

public static ConcurrentLinkedQueue<Connection> pool = new ConcurrentLinkedQueue<Connection> ();

public static void init () {
for (int i = 0; i < 5; i++) {
Connection con = getConnection();
pool.add(con);
}
}

public static Connection getConnection () {
Connection conn = null;
try {
long start = System.currentTimeMillis();
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
long end = System.currentTimeMillis();
System.out.println(end- start);
System.out.println("success");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

public static void closeConnection(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public static void main(String[] args) {
init();
long start = System.currentTimeMillis();
Connection con = pool.poll();
long end = System.currentTimeMillis();
System.out.println("pool:" + (end- start));
//dosomething
try {
con.clearWarnings();
} catch (SQLException e) {
e.printStackTrace();
}
pool.add(con);
//getConnection();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java