dbcp  jdbc数据库连接池问题!
 //jdbcUtil (ConnectionJDBC 同时实现单例)
    private static  String  driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    private static  String  url="jdbc:microsoft:sqlserver://192.168.11.33:1433;databasename=cicenterv2test;sendStringParametersAsUnicode=false";
    private static String  userName="cicenter";
    private static String passworld="123456";
    public static  Connection getConn(){
    	   Connection  conn=null;
			try {
				BasicDataSource  bds=new BasicDataSource();
				bds.setDriverClassName(driverName);
				bds.setUrl(url);
				bds.setUsername(userName);
				bds.setInitialSize(2);//初始连接
				bds.setMaxActive(5);//最大连接
				bds.setMaxIdle(2);//最大空闲
				bds.setMinIdle(1);//最小连接数
				bds.setMaxWait(1000);
                                conn=bds.getConnection();
			} catch (
SQLException e) {
				e.printStackTrace();
			 			}
		    return conn;
    }
//关闭连接的方法这里就不写出来了。我这个主要是用dbcp做连接池
下面是实际的一个用户登录的DAo:
  private PreparedStatement ps=null;
  private ResultSet  rs=null;
  private Connection conn=null;
public  User  userLogin(String username,String pwd) {
	   User user =new User();
	  try {
		conn=ConnectionJDBC.getInstance().getConn();
		String sql="select * from wuuser where username=? and pwd=?";
		ps=conn.prepareStatement(sql);
		ps.setString(1, username);
		ps.setString(2, pwd);
		rs=ps.executeQuery();
		while(rs.next()){
		  user.setId(rs.getInt("id"));
		  user.setPwd(rs.getString("pwd"));
		  user.setUsername(rs.getString("username"));
		}
	} catch (SQLException e) {
		e.printStackTrace();
	}finally{
		ConnectionJDBC.getInstance().closConn(conn,ps, rs);
	}
	  return  user;
  }
我断点 当执行到登录这个dao的时候,conn是null,程序也没有报错 直接到了finally里面去
这是怎么回事,连接没有获取到
数据库,密码,用户什么的保证都是正确的,因为之前我用的jdbc连接都就可以只是太慢了,我就想用连接池,但是就这样不行了
------解决方案--------------------这个代码不敢恭维啊,你这连接池就没作用,每次都new个datasouce,比直接jdbc开销还大。
你原来用jdbc连接慢应该是你用了jdk1.5或更高的版本才会出现这个问题,jdk1.4就不会慢,要解决这个问题很简单,在你获取连接之前,先执行ProxySelector.setDefault(null);这行代码就可以了。