📄 dao.java
字号:
/*
* 创建日期 2005-4-28
* 作 者 liug
*/
package com.icbc.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author liug
* @time 20:28:07
*/
public class DAO {
private static Logger log = Logger.getLogger(DAO.class.getName());
private ArrayList freeConns = new ArrayList();
private HashMap usingConns = new HashMap();
private String jdbcURL = null;
private String jdbcUserName = null;
private String jdbcPassword = null;
private String jdbcDriver = null;
public DAO(
String jdbcURL,
String jdbcUserName,
String jdbcPassword,
String jdbcDriver) {
this.jdbcURL = jdbcURL;
this.jdbcUserName = jdbcUserName;
this.jdbcPassword = jdbcPassword;
this.jdbcDriver = jdbcDriver;
}
public synchronized Connection getConnection() {
Connection conn = null;
try {
conn = (Connection) freeConns.remove(0);
conn.setAutoCommit(false);
} catch (Exception e) {
// log.log(Level.WARNING,"无法从连接池获取到连接");
conn = null;
}
if (conn == null) {
try {
Class.forName(jdbcDriver);
conn =
DriverManager.getConnection(
jdbcURL,
jdbcUserName,
jdbcPassword);
conn.setAutoCommit(false);
} catch (Exception ee) {
log.log(Level.SEVERE, "获取数据库连接出错!", ee);
}
}
if (conn != null) {
usingConns.put(conn, null);
}
return conn;
}
public synchronized void releaseConnection(Connection conn) {
usingConns.remove(conn);
try {
conn.setAutoCommit(false);
freeConns.add(conn);
} catch (Exception e) {
log.log(Level.WARNING, "数据库连接池释放无用连接.", e);
}
}
public synchronized void closeAll() {
for (int i = 0; i < freeConns.size(); i++) {
Connection conn = (Connection) freeConns.get(i);
try {
conn.close();
} catch (Exception e) {
}
}
Iterator iterator = usingConns.keySet().iterator();
while (iterator.hasNext()) {
Connection conn = (Connection) iterator.next();
try {
conn.close();
} catch (Exception e) {
}
}
freeConns.clear();
usingConns.clear();
}
public String getjdbcURL(){
return jdbcURL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -