import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
/**
* JDBC
* Java Data Base Connectivity,
* java数据库连接
* 一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问
*
* ojdbc6.jar oracle11g jdk1.7
*/
public class DB_JDBC {
private static Properties PRO = new Properties();
static {
try {
PRO.load(DB_JDBC.class.getClassLoader().getResourceAsStream("jdbcconfig.properties"));
Class.forName(PRO.getProperty("driverclass"));
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException{
//return DriverManager.getConnection(PRO.getProperty("url"), PRO.getProperty("user"), PRO.getProperty("password"));
return DriverManager.getConnection(PRO.getProperty("url"), PRO);
}
public static void closeConn(Connection conn){
if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
Connection conn = DB_JDBC.getConn();
System.out.println(conn);
DB_JDBC.closeConn(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
/**
* DBCP
* DataBase connection pool
* 开源数据库连接池
*
* commons-dbcp2-2.4.0.jar for java7
* commons-dbcp-1.4.jar for java6
* commons-pool-1.5.4.jar 好像可有无
*/
public class DB_DBCP {
private static DataSource DS = null;
static {
try {
Properties pro = new Properties();
pro.load(DB_DBCP.class.getClassLoader().getResourceAsStream("dpcpconfig.properties"));
DS = BasicDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException{
return DS.getConnection();
}
public static void closeConn(Connection conn){
if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
Connection conn = DB_DBCP.getConn();
System.out.println(conn);
DB_DBCP.closeConn(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* c3p0
* JDBC DataSources/Resource Pools
*
* c3p0是一个开源的JDBC连接池,自动读取配置文件。
* 配置文件名:c3p0-config.xml或者c3p0.properties,放置与src目录下。
*
* c3p0-0.9.5.4.jar
*/
public class DB_C3P0 {
private static ComboPooledDataSource DS = null;
static {
//method 1
DS =new ComboPooledDataSource();
//method 2
try {
Properties pro = new Properties();
pro.load(DB_C3P0.class.getClassLoader().getResourceAsStream("c3p0.properties"));
DS =new ComboPooledDataSource();
//DS.setProperties(pro);//only this can not get data
DS.setDriverClass(pro.getProperty("c3p0.driverClass"));
DS.setUser(pro.getProperty("c3p0.user"));
DS.setJdbcUrl(pro.getProperty("c3p0.jdbcUrl"));
DS.setPassword(pro.getProperty("c3p0.password"));
} catch (IOException | PropertyVetoException e) {
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException{
return DS.getConnection();
}
public static void closeConn(Connection conn){
if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
Connection conn = DB_C3P0.getConn();
System.out.println(conn);
DB_C3P0.closeConn(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
#jdbcconfig.properties
driverclass=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@host:port:database
user=dbuser
password=dbpassword
#dbcpconfig.properties
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@host:port:database
username=dbuser
password=dbpassword
#初始化连接数 即连接池启动时池子中的连接数目
initialSize=5
#最大连接数量,即连接池中可同时连接的最大数目
maxActive=15
#最大空闲连接数,超过此参数时空闲连接将被释放
maxIdle=10
#最小空闲连接 连接池中最少的空闲的连接数,低于这个数量时,意味着连接不够用了,会被创建新的连接
minIdle=5
#最大等待时间 请求连接时,最长的等待时间 。当没有可用连接时,连接池会等待连接释放,超过该时间限制会抛出异常
maxWait=30000
#c3p0.properties
#驱动
c3p0.driverClass=oracle.jdbc.driver.OracleDriver
#地址
c3p0.jdbcUrl=jdbc:oracle:thin:@host:port:database
#用户名
c3p0.user=dbuser
#密码
c3p0.password=dbpassword
#连接池初始化时创建的连接数
c3p0.initialPoolSize=3
#连接池保持的最小连接数
c3p0.minPoolSize=3
#连接池在无空闲连接可用时一次性创建的新数据库连接数,default:3
c3p0.acquireIncrement=3
#连接池中拥有的最大连接数,如果获得新连接时会使连接总数超过这个值则不会再获取新连接,而是等待其他连接释放,所以这个值有可能会设计地很大,default : 15
c3p0.maxPoolSize=15
#连接的最大空闲时间,如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接,单位秒
c3p0.maxIdleTime=100
#连接池在获得新连接失败时重试的次数,如果小于等于0则无限重试直至连接获得成功
c3p0.acquireRetryAttempts=30
#连接池在获得新连接时的间隔时间
c3p0.acquireRetryDelay=1000