• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 20次浏览 已收录 0个评论

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内部本文来源gaodaimacom搞#^代%!码&网*会用一个连接池来缓存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);

}

}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址