Класс для работы с таблицей в БД - Java MySQL

Я должен сделать отдельный класс с чтением библиотеки книг, обновлением и т. Д. Классные книги должны иметь:

  1. параметрический конструктор плюс переопределение для toString()
  2. Метод 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

1 ответ

Вы на самом деле не даете много информации о своей цели, поэтому я могу только догадываться. Я ожидал что-то вроде этого:

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);
}
Другие вопросы по тегам