-1

本のライブラリを読んだり、更新したりして、別のクラスを作成する必要があります。クラスの本には次のものが必要です。

  1. パラメトリック コンストラクタと toString() のオーバーライド
  2. DB のすべてのデータを読み取るメソッド getAll static
  3. メソッド getById は、ID を与えるときにデータを読み取りますが、これも静的です。

しかし、私は次のことをしました:

Main.java

    try {      
        ArrayList<String[]> allBooks = Books.getAll("SELECT * FROM books");
        for (String[] izd : allBooks) {
            System.out.println("Books id: " + izd[0] + " Date of publishing: " + izd[1] + " Id of books: " + izd[2]+...);
        }
    } catch (Exception e) {
        System.out.println(e);
    }

Books.java

    static ArrayList<String[]> getAll(String stt) throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException
    {
    connect();
    Statement stmt = conn.createStatement();
    stmt.executeQuery(stt);

    ResultSet rs = stmt.getResultSet();
    int columnsNum = rs.getMetaData().getColumnCount();
    ArrayList<String[]> result = new ArrayList<String[]>();

    while(rs.next())
    {
        String[] rowArr = new String[columnsNum];
            for(int i=0;i<columnsNum;i++)
                    rowArr[i]=rs.getString(i+1).toString();
            result.add(rowArr);
    }
    close();
    return result;
}

私は本当に方法を理解していません..どんな助けも次のようになります:D

4

1 に答える 1

0

あなたはここであなたの目標について多くの情報を提供していないので、私は推測することしかできません. 私は次のようなものを期待します:

public class Book {
  private String title;
  //...

  //constructor
  public Book(String theTitle) {
    this.title = theTitle;
  }

  public static ArrayList<Book> getAll(String stt) { /* ... */ }

  public static Book getById(int id) { /* ... */ }
}

そして、あなたのgetAll関数では、おそらく次のようなものが必要です:

while(rs.next())
{
    Book aBook = new Book(rs.getString("title"));
    result.add(aBook);
}
于 2014-02-24T11:38:35.653 に答える