课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java培训班:java数据库连接池
  • java培训班:java数据库连接池

    发布:昆明Java培训      来源:达内新闻      时间:2016-09-22

  • 昆明Java培训机构的老师今天来给大家讲说一说java数据库连接池是怎么一回事。

    1. About

    java利用jdbc直接连接数据库,经常取得连接,用完释放,很浪费系统资源

    2. Code

    Java代码

    package com.cdv.mam.db;

    import java.sql.Connection;

    import java.sql.DatabaseMetaData;

    import java.sql.SQLException;

    import java.util.Properties;

    import javax.sql.DataSource;

    import org.apache.commons.dbcp.BasicDataSourceFactory;

    import org.apache.commons.logging.Log;

    import org.apache.commons.logging.LogFactory;

    //import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;

    /**

    * tomcat数据库连接池管理类<br>

    *使用为tomcat部署环境<br>

    *需要在类路径下准备数据库连接配置文件dbcp.properties

    *

    */

    public class DBManager {

    private static final Log log = LogFactory.getLog(DBManager.class);

    private static final String configFile = "dbcp.properties";

    private static DataSource dataSource;

    static {

    Properties dbProperties = new Properties();

    try {

    dbProperties.load(DBManager.class.getClassLoader()

    .getResourceAsStream(configFile));

    dataSource = BasicDataSourceFactory.createDataSource(dbProperties);

    Connection conn = getConn();

    DatabaseMetaData mdm = conn.getMetaData();

    log.info("Connected to " + mdm.getDatabaseProductName() + " "

    + mdm.getDatabaseProductVersion());

    if (conn != null) {

    conn.close();

    }

    } catch (Exception e) {

    log.error("初始化连接池失败:" + e);

    }

    }

    private DBManager() {

    }

    /**

    *获取链接,用完后记得关闭

    *

    * @see {@link DBManager#closeConn(Connection)}

    * @return

    */

    public static final Connection getConn() {

    Connection conn = null;

    try {

    conn = dataSource.getConnection();

    } catch (SQLException e) {

    log.error("获取数据库连接失败:" + e);

    }

    return conn;

    }

    /**

    *关闭连接

    *

    * @param conn

    *           需要关闭的连接

    */

    public static void closeConn(Connection conn) {

    try {

    if (conn != null && !conn.isClosed()) {

    conn.setAutoCommit(true);

    conn.close();

    }

    } catch (SQLException e) {

    log.error("关闭数据库连接失败:" + e);

    }

    }

    }

    properties文件(dbcp.properties)

    #数据库驱动

    driverClassName=com.mysql.jdbc.Driver

    #数据库连接地址

    url=jdbc:mysql://192.168.1.41:3306/dmc

    #用户名

    username=root

    #密码

    password=root

    #连接池的最大数据库连接数。设为0表示无限制

    maxActive=30

    #最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连

    #接将被标记为不可用,然后被释放。设为0表示无限制

    maxIdle=10

    #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制

    maxWait=1000

    #超过removeAbandonedTimeout时间后,是否进行没用连接(废弃)的回收(默认为false,调整为true)

    removeAbandoned=true

    #超过时间限制,回收没有用(废弃)的连接(默认为300秒,调整为180)

    removeAbandonedTimeout=180

    昆明Java培训机构9月28日就开班,还没有学的同学快来报名抢占一个好的位置!

    推荐文章

上一篇:怎么通过JSONObject来创建json文件

下一篇:【昆明Java培训】java设计模式--工厂模式

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:12/29

Java--零基础业余班

Java--零基础业余班

开班日期:12/29

Java--周末提升班

Java--周末提升班

开班日期:12/29

Java--零基础周末班

Java--零基础周末班

开班日期:12/29

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56