1、数据库连接:DBManager.java
package com.softeem.jdbc.utils;
importjava.sql.*;
/**
* 此类用于对数据库连接进行管理
* 1.获取数据库连接
* 2.关闭数据库连接
* @authorLiaoWanjun
*/
publicclassDBManager {
//复制行Ctrl+Alt+up/down
privatestaticfinal String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
privatestaticfinal String URL="jdbc:sqlserver://localhost:1433;databaseName=db_book";
privatestaticfinal String USERNAME="sa";
privatestaticfinal String PWD="admin123";
/**
* 静态块中加载数据库连接驱动
* 静态块只在类首次加载时执行一次
*/
static{
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接
* @return
*/
publicstatic Connection getConn(){
Connection conn=null;
try {
conn=DriverManager.getConnection(DRIVER,USERNAME,PWD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭数据库连接
* @paramst
* @param conn
*/
publicstaticvoid close(Statement st,Connection conn){
close(null,st,conn);
}
/**
* 关闭数据库连接
* @paramrs
* @paramst
* @param conn
*/
publicstaticvoid close(ResultSetrs,Statementst,Connection conn){
try {
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
2、DBCP数据库连接池:DataBaseConnectionPool.java
我们可以通过DriverManager获得Connection数据库连接,但每次获取的都是新创建的一个连接,因此我们就需要创建一个数据库连接池。
数据库连接池特点:1) 节省内存开销
2) 节约时间,提高代码效率
建立数据库连接池需要导入三个jar包:
commons-collections-3.1.jar
commons-dbcp-1.2.1.jar
commons-pool-1.2.jar
packagecom.softeem.jdbc.utils;
importjava.sql.*;
importorg.apache.commons.dbcp.BasicDataSource;
importorg.apache.commons.dbcp.PoolableConnection;
/**
* 数据库连接池
* @authorLiaoWanjun
*
*/
publicclassDBConnectionPool {
privatestaticfinal String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
privatestaticfinal String URL="jdbc:sqlserver://localhost:1433;databaseName=db_book";
privatestaticfinal String USERNAME="sa";
privatestaticfinal String PWD="123456";
//设置数据库连接池的最大值
privatestaticfinalintMAXACTIVE=20;
//声明数据库连接池,全局变量引用类型的默认值为null
privatestaticBasicDataSourcepool=null;
static{
//new一个数据库连接池
pool=newBasicDataSource();
pool.setDriverClassName(DRIVER);
pool.setUrl(URL);
pool.setUsername(USERNAME);
pool.setPassword(PWD);
pool.setMaxActive(MAXACTIVE);
}
/**
* 获取数据库连接
* @return
*/
publicstatic Connection getConn(){
Connection conn=null;
try {
conn=pool.getConnection();
} catch (SQLException e) {
System.out.println("获取连接失败!");
e.printStackTrace();
}
return conn;
}
}