qq_36119647 2017-04-09 19:55 采纳率: 0%
浏览 3547

使用连接池时无法初始化,也不报错不知到哪出了问题

package com.server;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;

/**

  • 该类用于管理数据库连接
  • @author adminitartor
    *
    */
    public class DBUtil {
    //数据库连接池
    private static BasicDataSource ds;

    static{
    //初始化静态属性
    //1加载配置文件
    /*
    * java.util.Properties
    * 用来读取.properties文件,并解析其中
    * 每一行内容,然后以key-value的形式保存
    * 在当前实例中。
    */
    Properties prop = new Properties();
    try {
    prop.load(new FileInputStream("config.properties"));
    String className = prop.getProperty("classname");
    String url = prop.getProperty("url");
    String username = prop.getProperty("username");
    String password = prop.getProperty("password");
    int maxActive = Integer.parseInt(prop.getProperty("maxactive"));
    int maxWait = Integer.parseInt(prop.getProperty("maxwait"));
    //初始化连接池
    ds=new BasicDataSource();

        //将JDBC建立连接所需要的信息设置到连接池中
        //Class.forName(...)
        ds.setDriverClassName(className);
    
        //DriverManager.getConnection(...)
        ds.setUrl(url);
        ds.setUsername(username);
        ds.setPassword(password);
    
        //设置连接池最大连接数
        ds.setMaxActive(maxActive);
        //设置最大等待时间
        ds.setMaxWait(maxWait);
    
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }catch(Exception e){
        e.printStackTrace();
    }finally {
        System.out.println(123);
    }
    
    //2根据配置文件初始化
    

    }
    /**

    • 获取数据库连接
    • @return / public static Connection getConnection() throws Exception{ /
      • 连接池提供的方法:
      • Connection getConnection()
      • 该方法可以返回一个连接池中可用连接。
      • 这是一个阻塞方法,当连接池中有空闲连接
      • 可以使用时会立刻返回,若当前连接池没有
      • 可用连接时,会进入阻塞,阻塞时间由创建
      • 连接池时通过setMaxWait设置的时间为准
      • 在等待期间若有空闲连接着立即返回,当
      • 超过最大等待时间仍没有可用连接时,该方
      • 法会抛出超时异常。 / return ds.getConnection(); } /*
    • 关闭给定的连接
    • @param conn / public static void closeConnection(Connection conn){ try { conn.setAutoCommit(true); / * 若该连接是通过连接池获取的,那么调用 * 这个连接的close方法并不是与数据库断开 * 连接了,而仅仅是将该连接还给连接池。 */ conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
  • 写回答

1条回答 默认 最新

  • 关注

    你要看它报的是什么错!

    评论

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题