DBCP数据库连接池实例1

来源:互联网 发布:php7论坛源码 编辑:程序博客网 时间:2024/05/29 13:24
package Karl.Doenitz;import java.io.InputStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;public class testjdbc {private testjdbc(){}private static DataSource dataSource;public  void dbcp(){//private static DataSource dataSource;ResultSet rs = null;//建立一个数据库表的对象Statement stmt = null;//用于执行静态SQL的对象Connection conn = null;//用于建立联系的对象try {Class.forName("com.mysql.jdbc.Driver");//构造一个"com.mysql.jdbc.Driver"类//new mysql.jdbc.driver.mysqldriver();//conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/firstdatabase", "root","family");//与数据库建立联系Properties pro = new Properties();InputStream in = testjdbc.class.getClassLoader().getResourceAsStream("dbcp.properties");pro.load(in);dataSource = BasicDataSourceFactory.createDataSource(pro);//注意这段代码!!!conn = dataSource.getConnection();stmt = conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库        rs=stmt.executeQuery("select * from tab");//执行给定的 SQL 语句,该语句返回单个 ResultSet 对象        while(rs.next()){//当有下一个节点时         System.out.println(rs.getString("name"));//输出对应的数据库的成员的name         System.out.println(rs.getString("passwords"));//输出对应的数据库成员的id         }}catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}//finally{//try{//if(rs!=null){//如果不等于空//rs.close();//关闭//}//if(stmt!=null){//如果不等于空//stmt.close();//关闭//}//if(conn!=null){//如果不等于空 //conn.close();//关闭//}//}catch(SQLException e){//e.printStackTrace();//}//}}public static void main(String args[]){testjdbc tj = new testjdbc();long t1=System.currentTimeMillis();tj.dbcp();long t2=System.currentTimeMillis();System.out.println(t2-t1);}}其中,我们还需要一个配置文件,文件名为dbcp.properties,其内容如下:#连接设置driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/firstdatabaseusername=rootpassword=family#<!-- 初始化连接 -->initialSize=100#最大连接数量maxActive=500#<!-- 最大空闲连接 -->maxIdle=200#<!-- 最小空闲连接 -->minIdle=50#<!-- 超时等待时间以毫秒为单位 60000毫秒/1000等于60秒 -->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, SERIALIZABLEdefaultTransactionIsolation=READ_UNCOMMITTED最后我们还需要几个包,他们是:commons-dbcp-1.4.jar,commons-pool-1.6.jar,commons-collection-3.4.1.jar。好了,今天的例子就先讲到这里了,同学们有什么不懂的可以下课后问我。

原创粉丝点击