Класс для работы с таблицей в БД - Java MySQL
Я должен сделать отдельный класс с чтением библиотеки книг, обновлением и т. Д. Классные книги должны иметь:
- параметрический конструктор плюс переопределение для toString()
- Метод getAll static для чтения всех данных для БД
- Метод 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);
}