Java JTable данные из базы данных - PullRequest
0 голосов
/ 02 июня 2018

Я новичок в Java, и мне нужна помощь с отображением объединенной таблицы / запроса в jtable.

Сначала я закончил отображение данных из 1 таблицы:

  • Выберите данные из 1 таблицы
  • вставьте результат в его сущность и вставьте каждый из них в список
  • , верните список для просмотра и вставьте строку в jtable

Я использую шаблон DAO, который имеет фабрику, интерфейс, инструмент, сущность и представление.

Так что, если я выберу данные из другой таблицы?

Вот мой метод get в орудии для получения книги

 public List get(String find) {
    try {
        ps = db.connect().prepareStatement("SELECT * FROM books WHERE title like ? ");
        ps.setString(1, "%" + find + "%");

        status = db.execute(ps);
        if (status) {
            books = db.get_result();
            listBooks = new ArrayList<>();

            while (books.next()) {
                entity_books b = new entity_books();
                b.setId(books.getInt(1));
                b.setId_category(books.getInt(2)); 
                b.setTitle(books.getString(3));
                listBooks.add(b);
            }
            books.close();
            return listBooks;
        }
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return null;
}

, а затем, на мой взгляд:

listBooks = booksDAO.get(find.getText());
    model = (DefaultTableModel) book_table.getModel();
    model.setRowCount(0);

    listBooks.forEach((data) -> {
        model.addRow(new Object[]{
            data.getId(),
            data.getId_category(),
            data.getTitle(),

        });
    });

Это прекрасно работает, но я хочу, чтобы запросприсоединиться к таблице, чтобы я мог видеть имя категории, а не просто ID категории.Я могу выполнить запрос, но как мне применить это к моему коду?

Вот запрос для объединенной таблицы

select title,category from book b
join category c on c.id = b.id_category    

Обычно, если я выберу только 1 таблицу, я вставлю еек его сущности (book book -> book entity), так как мне справиться с этим с несколькими таблицами?

1 Ответ

0 голосов
/ 02 июня 2018

Я не использовал подготовленное утверждение, но этот код работает на моем конце.

String sql = "SELECT * FROM customer c JOIN company cmp ON c.company_idcompany = cmp.idcompany";

        ResultSet rs = stmt.executeQuery(sql);
        //STEP 5: Extract data from result set
        while (rs.next()) {
            //Retrieve this from customer table
            int id = rs.getInt("idcustomer");
            //Retrieve this from customer table
            String username = rs.getString("company_username");

            //Display values
            System.out.println("ID: " + id);
            System.out.println("Username: " + username);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...