gpt4 book ai didi

java - 如何将数据库数据显示到 Swings 中的 JTable(动态)?

转载 作者:行者123 更新时间:2023-12-01 19:23:18 25 4
gpt4 key购买 nike

我们在业务层使用hibernate,但任务是,通过使用Swing中的JTable来显示数据库中的动态数据(Swing)。代码:

    Criteria criteria=session.createCriteria(User.class);
//here user.class is pojo class in hibernate.

List studentlist= criteria.list();

System.out.println("records"+studentlist);
//here the data is showing in hibernate console, but how to represent that data in the format of "jtable".

最佳答案

我们可以从 hibernate 中检索对象列表。要显示 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 的模型

关于java - 如何将数据库数据显示到 Swings 中的 JTable(动态)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com