最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇

来源:懂视网 责编:小采 时间:2020-11-09 07:46:22
文档

黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇

黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇:lDataSource用来取代DriverManager来获取Connection; l通过DataSource获得Connection速度很快; l通过DataSource获得的Connection都是已经被包裹过的(不是 驱动原来的连接),他的close方法已经被修改。 l一般DataSource内部会用一个连接
推荐度:
导读黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇:lDataSource用来取代DriverManager来获取Connection; l通过DataSource获得Connection速度很快; l通过DataSource获得的Connection都是已经被包裹过的(不是 驱动原来的连接),他的close方法已经被修改。 l一般DataSource内部会用一个连接

lDataSource用来取代DriverManager来获取Connection; l通过DataSource获得Connection速度很快; l通过DataSource获得的Connection都是已经被包裹过的(不是 驱动原来的连接),他的close方法已经被修改。 l一般DataSource内部会用一个连接池来缓存Connection

lDataSource用来取代DriverManager来获取Connection;

l通过DataSource获得Connection速度很快;

l通过DataSource获得的Connection都是已经被包裹过的(不是
驱动原来的连接),他的close方法已经被修改。

l一般DataSource内部会用一个连接池来缓存Connection,这样

可以大幅度提高数据库的访问速度;

l连接池可以理解成一个能够存放Connection的Collection;

l我们的程序只和DataSource打交道,不会直接访问连接池;

使用DBCP步骤如下,三步:
l使用DBCP必须用的三个包:

commons-dbcp-1.2.1.jar,

commons-pool-1.2.jar,

commons-collections-3.1.jar。

l配置参数。
lJavaAPI:BasicDataSourceFactory.createDataSource(

properties);

2.dbcpconfig.properties配置文件内容:

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=root

#
initialSize=10

#最大连接数量
maxActive=50

#
maxIdle=20

#
minIdle=5

#
maxWait=60000

#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=gbk

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED

3.不需要再写数据源,直接用

public final class JdbcUtils {

	private static DataSource myDataSource = null;

	private JdbcUtils() {
	}

	static {
	try {
	Class.forName("com.mysql.jdbc.Driver");
	// myDataSource = new MyDataSource2();
	Properties prop = new Properties();
	// prop.setProperty("driverClassName", "com.mysql.jdbc.Driver");
	// prop.setProperty("user", "user");

	InputStream is = JdbcUtils.class.getClassLoader()
	.getResourceAsStream("dbcpconfig.properties");
	prop.load(is);
	myDataSource = BasicDataSourceFactory.createDataSource(prop);//创建数据源,一句代码就完成
	} catch (Exception e) {
	throw new ExceptionInInitializerError(e);
	}
	}

	public static DataSource getDataSource() {
	return myDataSource;
	}

	public static Connection getConnection() throws SQLException {
	// return DriverManager.getConnection(url, user, password);
	return myDataSource.getConnection();
	}

	public static void free(ResultSet rs, Statement st, Connection conn) {
	try {
	if (rs != null)
	rs.close();
	} catch (SQLException e) {
	e.printStackTrace();
	} finally {
	try {
	if (st != null)
	st.close();
	} catch (SQLException e) {
	e.printStackTrace();
	} finally {
	if (conn != null)
	try {
	conn.close();
	// myDataSource.free(conn);
	} catch (Exception e) {
	e.printStackTrace();
	}
	}
	}
	}
}

4.测试

public static void main(String[] args) throws Exception {

for (int i = 0; i < 10; i++) {

Connection conn = JdbcUtils.getConnection();

System.out.println(conn);

JdbcUtils.free(null, null, conn);

}

}

文档

黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇

黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇:lDataSource用来取代DriverManager来获取Connection; l通过DataSource获得Connection速度很快; l通过DataSource获得的Connection都是已经被包裹过的(不是 驱动原来的连接),他的close方法已经被修改。 l一般DataSource内部会用一个连接
推荐度:
标签: 使用 如何 程序员
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top