今天从数据库中取值的时候,用的是List集合类,然后用add()将写好的实体类赋值,并装入了集合,
,但是在测试的时候总是,该 List 对象的size()却一直为0。我的jdbc检查了好几遍应该没有问题,用了好多次了.用的是桥连接.
怎么办.. 有明白点的加我qq 455140524 验证信息答案 dmpp 

解决方案 »

  1.   

    /**
     * 库存数据库访问类
     */
    package com.store.Dao;
    import com.store.*;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;/**
     * @author 苏朋朋
     *
     */
    public class StorageDao {
    private static final String WIRING="电器";
    private static final String FOOD="食品";
    private static final String CLOTHING="衣服";
    private static final String COMMODITY="日用品";

    private static final String DRIVER="sun.jdbc.odbc.JdbcOdbcDriver";//数据库驱动
    private static final String URL="jdbc:odbc:store";//数据库
    private static final String DATABASENAME="sa";//数据库名称
    private static final String DATABASEPASSWORD="5103765";//数据库密码

    private Connection con=null;//数据库连接对象
    private PreparedStatement pStatement=null;//创建PrepareStatement对象
    private ResultSet rse=null;//创建ResultSet对象
    /**
     * 
     * @return Connection
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public Connection getConn() throws ClassNotFoundException, SQLException{
    Class.forName(DRIVER);
    return DriverManager.getConnection(URL,DATABASENAME,DATABASEPASSWORD);
    }
    public void closeAll(Connection con,PreparedStatement statement,ResultSet res){
    if(res!=null){
    try {
    res.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    if(statement!=null){
    try {
    statement.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    if(con!=null){
    try {
    con.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }
    /**
     * 查询参数类型的商品
     * @param typeStr
     * @return 按类型查询的商品list
     */
    public List listByType(String typeStr){
    List list=new ArrayList();
    String sql="select * from TBL_STORAGE where type=?";
    try{
    con=this.getConn();
    pStatement=con.prepareStatement(sql);
    pStatement.setString(1, typeStr);
    rse=pStatement.executeQuery();
    while(rse.next()){
    Storage stor = new Storage();
                    stor.setSname(rse.getString("sname"));
                    stor.setType(rse.getString("type"));
                    stor.setNumber(rse.getInt("number"));
                    stor.setPrice(rse.getFloat("price"));
                    stor.setUseDay(rse.getInt("useDay"));
                    stor.setMakeTime(rse.getString("makeTime").substring(0, 10));
                    list.add(stor);
    }
    }catch(ClassNotFoundException e){
    e.printStackTrace();
    }catch(SQLException e){
    e.printStackTrace();
    }finally{
    this.closeAll(con, pStatement, rse);
    }
    return list;
    }
    /**
     * 按项目查询信息
     * @param itme
     * @return 商品list的信息
     */
    public List listOrderByItem(String itme){
    List list=new ArrayList();
    String sql="select * from TBL_STORAGE order by "+itme;

    try{
    con=this.getConn();
    pStatement=con.prepareStatement(sql);
    rse=pStatement.executeQuery();
    while(rse.next()){
    Storage stor=new Storage();
    stor.setSid(rse.getInt("sid"));
    stor.setNumber(rse.getInt("number"));
    stor.setMakeTime(rse.getString("makeTime").substring(0, 10));
    stor.setPrice(rse.getFloat("price"));
    stor.setSname(rse.getString("sname"));
    stor.setType(rse.getString("type"));
    stor.setUseDay(rse.getInt("useDay"));
    list.add(stor);
    }
    }catch(ClassNotFoundException e){
    e.printStackTrace();
    }catch(SQLException e){
    e.printStackTrace();
    }finally{
    this.closeAll(con, pStatement, rse);
    }
    return list;
    }
    }
    /**
     * 总算把第二阶段做完了.
     */
    这是Dao类 
      

  2.   

    我问题解决了 .给大家分享一下,在用 stor.setSname(rse.getString("sname")); 
    这几句取值的时候 一定要按照数据库中字段的顺序,别搞乱了 .. 
    还有几个敏感词汇别弄错了 ..