⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbconnection.java

📁 简易的java问答系统
💻 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 + -