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使用ConcurrentLinkedQueue实现简易数据库连接池
最新推荐文章于 2023-12-15 22:05:29 发布