版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32048567/article/details/73756631
DBCP连接池是Apache 提供的 性能也不错
准备:
1):拷贝jar:commons-dbcp-1.4.jar , commons-pool-1.5.6.jar
2):build path,添加到classpath路径.
3):阅读文档:commons-dbcp-1.3-src\doc\BasicDataSourceExample.java
dbcp.properties:
编写该文件:
key名必须等于BasicDataSource中的属性名(由setter方法决定).
----------------------------------------------------------------------
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///jdbcdemo
username=root
password=admin
maxActive=10
----------------------------------------------------------------------
----------------------工具类代码
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
/***
* DBCP 连接池工具类
* @author mldn
*
*/
public class MyDbcpUity {
//配置文件
private static Properties prod=new Properties();
//连接池对象
private static DataSource dataSource=null;
static {
//读取配置文件路径
InputStream input=Thread.currentThread().getContextClassLoader().getResourceAsStream("dbcp.properties");
try {
//加载文件路径进内存
prod.load(input);
//通过BasicDataSourceFactory工厂模式进行创建连接池对象
dataSource=BasicDataSourceFactory.createDataSource(prod);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//返回一个数据库的连接对象
public static Connection getConn(){
try {
//从连接池当中获取一个连接
return dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
}
------------------------------------------测试代码
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
import cn.heima.jdbc.DatabaseConnection;
public class MyDbcpTest2 {
@Test
public void finayAll() {
//写一条sql语句
String sql = "select * from exam";
//三大执行官
Connection conn = null;
PreparedStatement prep = null;
ResultSet result = null;
try {
//预执行
conn = MyDbcpUity.getConn();
prep=conn.prepareStatement(sql);
result=prep.executeQuery();
while(result.next()){
System.out.println(result.getString("name")+" "+result.getDouble("english")+" "+result.getDouble("chinese")+" "+result.getString("math"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//释放资源
finally{
DatabaseConnection.Close(result, conn,prep);
}
}
}
准备:
1):拷贝jar:commons-dbcp-1.4.jar , commons-pool-1.5.6.jar
2):build path,添加到classpath路径.
3):阅读文档:commons-dbcp-1.3-src\doc\BasicDataSourceExample.java
dbcp.properties:
编写该文件:
key名必须等于BasicDataSource中的属性名(由setter方法决定).
----------------------------------------------------------------------
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///jdbcdemo
username=root
password=admin
maxActive=10
----------------------------------------------------------------------
----------------------工具类代码
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
/***
* DBCP 连接池工具类
* @author mldn
*
*/
public class MyDbcpUity {
//配置文件
private static Properties prod=new Properties();
//连接池对象
private static DataSource dataSource=null;
static {
//读取配置文件路径
InputStream input=Thread.currentThread().getContextClassLoader().getResourceAsStream("dbcp.properties");
try {
//加载文件路径进内存
prod.load(input);
//通过BasicDataSourceFactory工厂模式进行创建连接池对象
dataSource=BasicDataSourceFactory.createDataSource(prod);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//返回一个数据库的连接对象
public static Connection getConn(){
try {
//从连接池当中获取一个连接
return dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
}
------------------------------------------测试代码
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
import cn.heima.jdbc.DatabaseConnection;
public class MyDbcpTest2 {
@Test
public void finayAll() {
//写一条sql语句
String sql = "select * from exam";
//三大执行官
Connection conn = null;
PreparedStatement prep = null;
ResultSet result = null;
try {
//预执行
conn = MyDbcpUity.getConn();
prep=conn.prepareStatement(sql);
result=prep.executeQuery();
while(result.next()){
System.out.println(result.getString("name")+" "+result.getDouble("english")+" "+result.getDouble("chinese")+" "+result.getString("math"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//释放资源
finally{
DatabaseConnection.Close(result, conn,prep);
}
}