Récupérer des Données à partir de bases de données MySQL et de montrer dans JTable
J'utilise le code suivant pour récupérer les données à partir de bases de données MySQL. Le code se connecte à la base de données correctement. Mon problème est de récupérer les données à partir de bases de données MySQL et de le présenter dans la JTable.
package student;
import java.awt.*;
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.*;
public class student1 extends javax.swing.JFrame {
//public Connection Conn;
Vector data = new Vector() ;
Vector columnNames= new Vector();
public student1() {
initComponents();
Connection conn;
}
public void Connection(){
try
{
Class.forName("com.mysql.jdbc.Driver");
String username = "root";
String password = "root";
String Database = "jdbc:mysql://localhost:3306/project";
Connection conn = DriverManager.getConnection(Database, username, password);
System.out.println("*** Connect to the database ***");
String Query = "Select * from StudentMaster";
Statement smnt = conn.createStatement();
ResultSet results = smnt.executeQuery( Query );
ResultSetMetaData metaDt = results.getMetaData();
System.out.println(metaDt);
int cols = metaDt.getColumnCount();
System.out.println("database" +cols);
for(int i=1;i<cols;i++){
columnNames.addElement (metaDt.getColumnName(i));
}
while(results.next()){
Vector row= new Vector(cols);
for(int i=1;i<=cols;i++){
row.addElement(results.getObject(i));
}
data.addElement(row);
}
results.close();
smnt.close();
conn.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
@SuppressWarnings("unchecked")
//<editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null},
{null, null, null, null, null, null, null, null}
},
new String [] {
"StudId", "StudNo", "StudName", "StudClass", "StudMrk1", "StudMrk2", "StudTot", "StudRes"
}
){
Class[] types = new Class [] {
java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 560, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(212, Short.MAX_VALUE))
);
pack();
}//</editor-fold>
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new student1().setVisible(true);
student1 s1=new student1();
s1.Connection();
}
});
}
//Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
//End of variables declaration
}
Lorsque ce code est je l'ai exécuté, j'obtiens le résultat suivant. Comment puis-je résoudre mon problème?
*** Connect to the database ***
com.mysql.jdbc.ResultSetMetaData@1194a4e - Field level information:
com.mysql.jdbc.Field@15d56d5[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudId,originalColumnName=StudId,mysqlType=3(FIELD_TYPE_LONG),flags= PRIMARY_KEY, charsetIndex=63, charsetName=US-ASCII]
com.mysql.jdbc.Field@efd552[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudNo,originalColumnName=StudNo,mysqlType=3(FIELD_TYPE_LONG),flags=, charsetIndex=63, charsetName=US-ASCII]
com.mysql.jdbc.Field@19dfbff[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudName,originalColumnName=StudName,mysqlType=253(FIELD_TYPE_VAR_STRING),flags=, charsetIndex=8, charsetName=Cp1252]
com.mysql.jdbc.Field@10b4b2f[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudClass,originalColumnName=StudClass,mysqlType=253(FIELD_TYPE_VAR_STRING),flags=, charsetIndex=8, charsetName=Cp1252]
com.mysql.jdbc.Field@750159[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudMrk1,originalColumnName=StudMrk1,mysqlType=3(FIELD_TYPE_LONG),flags=, charsetIndex=63, charsetName=US-ASCII]
com.mysql.jdbc.Field@1abab88[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudMrk2,originalColumnName=StudMrk2,mysqlType=3(FIELD_TYPE_LONG),flags=, charsetIndex=63, charsetName=US-ASCII]
com.mysql.jdbc.Field@18a7efd[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudTot,originalColumnName=StudTot,mysqlType=3(FIELD_TYPE_LONG),flags=, charsetIndex=63, charsetName=US-ASCII]
com.mysql.jdbc.Field@1971afc[catalog=project,tableName=StudentMaster,originalTableName=studentmaster,columnName=StudRes,originalColumnName=StudRes,mysqlType=253(FIELD_TYPE_VAR_STRING),flags=, charsetIndex=8, charsetName=Cp1252]
database8
BUILD SUCCESSFUL (total time: 14 seconds)
s'il vous plaît apprendre conventions de nommage java et de s'y tenir
OriginalL'auteur unknown | 2011-12-26
Vous devez vous connecter pour publier un commentaire.
Je ne vois pas d'erreurs. Ce que vous voyez sont les messages qui sont imprimés à partir de votre code, principalement à partir de ces énoncés:
Veuillez mettre à jour votre question. À partir de ce que vous avez écrit, il semble que vous avez trouvé une erreur, mais il n'en est pas une. Vous n'avez pas écrit le code d'ajouter les données que vous avez récupéré de la base de données de la JTable. Demandez-vous comment ajouter des données à la JTable? Si oui, veuillez indiquer clairement dans votre question.
J'ai créer Jtable dans netbeans et personnalisez-le pour mon propre besoin.comme StudName,StudId,StudMrk1 et ainsi de suite.J'utilise ce code pour récupérer les données de MYSQL vers JTABLE?lorsque j'utilise ce code je ne peux pas obtenir l'affichage que DB les valeurs dans la JTable.
Qu'est-ce que la sortie de ce code?: Système..println(metaDt);
Il est le plus probablement "com.mysql.jdbc.ResultSetMetaData@1194a4e - au niveau du Champ de l'information:" et les lignes en retrait après présentent le ResultSet informations de métadonnées.
OriginalL'auteur Abbas
Votre code de base semble raisonnable. Vous créez deux Vecteurs contenant les noms des colonnes et des données, mais pas d'où vous pouvez ensuite utiliser ces Vecteurs de créer un DefaultTableModel qui peut ensuite être ajoutée à la table.
De sorte que votre code doit être quelque chose comme:
Pour un exemple complet (à l'aide de l'Accès) découvrez le
Table From Database Example
trouvé dans Table De Base De Données.OriginalL'auteur camickr