黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了黑马程序员JDBC_如何使用开源项目DBCP(实际项目中常用)(李勇,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3247字,纯文字阅读大概需要5分钟。
内容图文
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(实际项目中常用)(李勇所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。