2010-05-03 6 views
0

nous utilisons hibernate dans la couche de gestion, mais la tâche est, en utilisant le jtable dans les balançoires pour afficher les données dynamiques (balançoires) de la base de données. code:comment puis-je afficher les données de la base de données à un jtable (dynamique) dans les balançoires!

Critères criteria = session.createCriteria (User.class);

// ici user.class est classe pojo en hibernation.

Liste des étudiants = criteria.list();

System.out.println ("enregistrements" + liste d'étudiants);

ici les données sont montrées dans la console d'hibernation, mais comment représenter ces données dans le format de "jtable".

Répondre

1

Je vous recommande de lire le tutoriel How to use tables, de Java.

Si vous avez un besoin plus spécifique, éditez votre question pour ajouter des détails.

+0

+1, un lien vers un tutoriel ou une méthode spécifique est toujours apprécié. Non seulement il fournit des informations à cette réponse, mais il fournit une ressource pour d'éventuels problèmes futurs. – camickr

1

Je n'ai jamais utilisé hibernate, mais selon le code fourni, il semble que les données de votre base de données soient renvoyées dans une liste. Par conséquent, vous devrez créer un TableModel personnalisé pour accéder aux données de la liste. Le BeanTableModel pourrait vous aider.

+0

+1 pour ajouter plus de détails et une solution possible (à une question très non spécifique). – Gnoupi

+0

Je pense que c'est la même chose à mes exigences. Mais je ne peux pas comprendre. Pouvez-vous m'envoyer le code acutal à ce sujet? comme: Critères criteria = session.createCriteria (User.class); \t \t \t Liste studentlist = criteria.list(); // cette liste d'étudiants peut contenir des données (base de données). Chaîne [] columnNames = {"EMPLOYEE NO", "NOM COMPLET", "USER", "MOTS DE PASSE", "DEPARTMENTS", "PHONE"}; // alors comment puis-je créer des rowdata? // pouvez-vous m'envoyer un code ou des suggestions.est urgent! – harish

+0

@harish - il n'y a pas de solution "envoyez-moi le code" à votre problème, car nous ne connaissons pas tous vos besoins. Vérifiez le tutoriel que j'ai donné dans ma réponse, car il contient toutes les informations dont vous aurez besoin pour créer et remplir votre JTable. Il faudra du travail de votre part, il ne peut pas être répondu dans quelques lignes de code. – Gnoupi

2

Nous pouvons récupérer une liste d'objets à partir d'Hibernate. Pour afficher les objets dans JTable, venez d'hériter d'une classe de AbstractTableModel et fournissez les méthodes getRowCount(), getColumnCount() et getValueAt(). Et la méthode getColumnName doit souvent être redéfinie pour afficher le nom de la colonne que vous voulez, et non le formulaire X, Y, Z. Disons que vous avez une table PERSON dans une base de données et la personne de classe persistante correspondante.

Source de 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]; 
    } 
} 

Ensuite, créez un objet PersonTableModel et définissez le modèle du JTable lui

Questions connexes