LZ是个初学JAVA 的菜鸟,在学习连接池技术的时候碰到个小难题。一直找不到解决方法。
源代码如下:报错的位置是List<GoodsData> goodsList = (List<GoodsData>) qr.query("select * from Goods", rsh);
报错:GoodsData cannot be cast to java.util.List。求助论坛的各位大神们。。连接池JAVA源代码报错

解决方案 »

  1.   

    只有一个连接池工厂的类
    源代码如下:public class DbPool {
    //初始化数据源ds和log记录对象
    private static DataSource ds = null;
    private static Logger log=Logger.getLogger(DbPool.class);

    public static DataSource getDataSourcePool(){
    if(ds!=null)
    return ds;
    /*
     * 实例化配置文件类,实例化配置文件的路径
     * */
    Properties pro =new Properties();
    InputStream ins=DbPool.class.getResourceAsStream("/db.properties");
    try {
    /*
     * 根据配置文件打开指定驱动
     * */
    pro.load(ins);
    String driver=pro.getProperty("driver");
    Class.forName(driver);
    /*
     * 通过配置文件,获取url,用户名,密码
     * */
    String url=pro.getProperty("url");
    String user=pro.getProperty("user");
    String pwd=pro.getProperty("pwd");
    /*
     * 实例化连接池
     * */
    ObjectPool connectionPool = new GenericObjectPool(null);
    /*
     * 实例化连接工厂
     * */
    ConnectionFactory connectionFactory= new DriverManagerConnectionFactory(url,user,pwd);
    /*
     * 实例化连接池工厂,连接池工厂作用是自动产生连接,属于托管
     * */
    new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
    /*
     * 将产生的连接池交给数据源
     * */
    ds=new PoolingDataSource(connectionPool);

    } catch (IOException e) {
    // 异常,找不到配置文件
    log.fatal("找不到配置文件",e);
    } catch (ClassNotFoundException e) {
    // 异常,找不到class文件
    log.fatal("找不到class文件",e);
    }
    return ds;
    }
    }
      

  2.   

    查询得到的是GoodsData类型的。
    直接list<GoodsData> al= new ArrayList<GoodsData> ();
    al.add(查询结果)。这样就好了。