📄 dbconnection.java
字号:
package cn.netjava.dbc;
import javax.sql.*;
import java.sql.*;
import org.apache.commons.dbcp.BasicDataSource;
/**
* 数据库连接类,使用了DBCP 数据库连接池
*
* @author XieChengmin
*
*/
public class DBConnection {
private static DataSource ds = null;
private static boolean poolOK = false;
final static String DBDRIVER = "oracle.jdbc.OracleDriver";
final static String DBURL = "jdbc:oracle:thin:@localhost:1521:ora9";
final static String DBUSER = "mjk";
final static String DBPWD = "mjk";
/**
* 取得数据库连接
*
* @return 一个数据池中的连接
*/
public static Connection getConn() {
// 如果连接池未安装 或 连接池坏死, 安装连接池
if (null == ds || false == poolOK) {
ds = setupDataSource();
}
Connection con = null;
try {
con = ds.getConnection();
poolOK = true;
//检测连接是否有效,如果无效,会抛出异常
con.prepareStatement("select * from tab");
} catch (SQLException e) {
poolOK = false;
shutdownDataSource(ds);
System.out.println("数据库意外关闭" + e);
}
return con;
}
/**
* 安装连接池
*
* @return 连接池对象
*
*/
private static DataSource setupDataSource() {
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName(DBDRIVER);
bds.setUrl(DBURL);
bds.setUsername(DBUSER);
bds.setPassword(DBPWD);
bds.setInitialSize(10);
bds.setMaxActive(30);
return bds;
}
/**
* 关闭连接池
*/
private static void shutdownDataSource(DataSource ds) {
BasicDataSource bds = (BasicDataSource) ds;
try {
bds.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
private DBConnection() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -