...  ...ResultSet rs = stmt.executeQuery("select art_name from art");  // 这里面有几条记录?
          while(rs.next()){
             time[i] = rs.getString("art_name");
             i++;
          }
...  ...catch (SQLException ex) {
              ex.printStackTrace();
          }
          //System.out.println(time[1]);
          return time[1];     // 确切这里有值吗?

解决方案 »

  1.   

    数据库里的表已建立 在dos下已查过 6个记录 至于time[]里有无 赋值进去 就不清楚了
      

  2.   

    我作个这样一个测试 在dos下可以看到输出结果:
    import java.sql.*;public class GetName{

    public static void main(String arg[]){

    try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
            } catch(Exception e){ 
                 e.printStackTrace(); 
              }
            try {
                String url = "jdbc:mysql://localhost/boke";
                Connection c = DriverManager.getConnection(url,"root","root");
                Statement stmt = c.createStatement();
                ResultSet rs = stmt.executeQuery("select art_name from art");
                while(rs.next()){
                 System.out.println(rs.getString("art_name"));
                }
                c.close(); 
            }catch (SQLException ex) {
                ex.printStackTrace();
            }

    }
      

  3.   

    ...  ...String[] time = null;  // 未初始化...  ...应该使它等于 stmt.executeQuery("select art_name from art"); 检索出来的记录数.time = new String[rowCount];然后下面引用才有效:time[i] = rs.getString("art_name");
      

  4.   

    如果rowCount不好得到,可以:将 String[] time = null; 声明为 Vector time = new Vector();
    相应time[i] = rs.getString("art_name"); 改time.addElement(rs.getString("art_name"));
    返回 time.elementAt(1);