Как я могу отобразить данные базы данных в Jtable (динамический) в качелях! - PullRequest
0 голосов
/ 03 мая 2010

мы используем hibernate на бизнес-уровне, но задача состоит в том, чтобы с помощью jtable в swings для отображения динамических данных (swings) из базы данных. код:

Критерии критериев = session.createCriteria (User.class);

// здесь user.class - это класс pojo в спящем режиме.

Список учеников = crit.list ();

System.out.println ( "запись" + studentlist);

здесь данные отображаются в консоли hibernate, но как представить эти данные в формате "jtable".

Ответы [ 3 ]

2 голосов
/ 10 апреля 2013

Мы можем получить список объектов из спящего режима. Чтобы показать Объекты в JTable, просто наследуйте класс от AbstractTableModel и предоставьте методы getRowCount (), getColumnCount () и getValueAt (). И метод getColumnName часто необходимо переопределить, чтобы показать нужное имя столбца, а не форму X, Y, Z. Допустим, у вас есть таблица PERSON в некоторой базе данных и соответствующий ей постоянный класс Person.

Источник PersonTableModel.java:

import org.hibernate.*;
import org.hibernate.cfg.*;
import java.util.*;
import javax.swing.table.AbstractTableModel;



public class PersonTableModel extends AbstractTableModel
{
    private static final long serialVersionUID = 6105842825518764825L;
    private ArrayList<Person> PersonList;

    public PersonTableModel()
    {
        super();
        SessionFactory sf=new Configuration().configure().buildSessionFactory();
        Session session=sf.openSession();

        Query q=session.createQuery("from Person");
        PersonList=new ArrayList<Person>(q.list());

        session.close();
        sf.close();
    }

    public int getRowCount()
    {
        return PersonList.size();
    }

    public int getColumnCount()
    {
        return 5;
    }

    public Object getValueAt(int rowIndex, int columnIndex)
    {
        Person p=PersonList.get(rowIndex);
        Object[] values=new Object[]{p.getId(),p.getFirstname(),p.getLastname(),
                p.getAge(),p.getDescription()};
        return values[columnIndex];
    }

    @Override
    public String getColumnName(int column)
    {
        String[] columnNames=new String[]{"id","FirstName","LastName","Age","description"};
        return columnNames[column];
    }
}

Затем создайте объект PersonTableModel и установите для него модель JTable

1 голос
/ 03 мая 2010

Я никогда не использовал hibernate, но на основе кода, если он выглядит так, как будто данные из вашей базы данных возвращаются в список. Поэтому вам нужно будет создать пользовательскую TableModel для доступа к данным в списке.

BeanTableModel может помочь вам.

1 голос
/ 03 мая 2010

Рекомендую прочитать учебник Как использовать таблицы , с Java.

Если у вас есть более конкретные потребности, отредактируйте свой вопрос, чтобы добавить детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...