Problème d'affichage des données MySQL

cs_hmizo Messages postés 1 Date d'inscription jeudi 16 février 2012 Statut Membre Dernière intervention 24 avril 2012 - 24 avril 2012 à 11:41
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 - 24 avril 2012 à 14:17
Je veux afficher des données d'une base de données MYSQL, et rien ne veut s'afficher meme si y'a pas un erreur déclenché dans l'éxécution !!!!!!
Voila le code utilisé :

package Interfaces;



import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTable;
import javax.swing.JLabel;
import Classes.connexion;
import java.sql.*;
import java.util.*;

public class Fenetre extends JFrame {

private JPanel contentPane;
private JTable table;
private Statement st=null;
private ResultSet rs=null;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Fenetre frame = new Fenetre();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Fenetre() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 683, 444);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
Vector columnNames = new Vector();
Vector data = new Vector();

try {
Connection conn = connexion.getMySqlConnection();

String sql = "Select * from emplacement ";
st = conn.createStatement();
rs = st.executeQuery( sql );

ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
for (int i = 1; i <= columns; i++) {
columnNames.addElement( md.getColumnName(i) );
}
while (rs.next()) {
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++) {
row.addElement( rs.getObject(i) );
}
data.addElement( row );
}
rs.close();
st.close();
}
catch(Exception e) {
System.out.println( e );
}

table = new JTable(data, columnNames);
table.setBounds(678, 325, -637, -255);
contentPane.add(table);

JLabel lblUneTable = new JLabel("Une table");
lblUneTable.setBounds(294, 11, 83, 14);
contentPane.add(lblUneTable);
}
}



Et voila la classe de connexion :
package Classes;
import java.sql.Connection;
import java.sql.DriverManager;
public class connexion {
public static Connection getMySqlConnection() throws Exception {
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost/gestionmateriel";
String username = "root";
String password = "123456";

Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}
}


NB : Quant j'utilise le meme code sur NetBeans ça marche mais sur Eclipse nn !!
Aidez Moi svp

4 réponses

cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
24 avril 2012 à 11:53
Salut,

peut-etre un soucis avec les setBounds...
Pourquoi n'utilises-tu pas les LayoutManager?
contentPane.setLayout(new BorderLayout());
contentPane.add(lblUneTable, BorderLayout.NORTH);
//le new JScrollPane permet d'avoir des ascenceurs latéraux s'il y a trop de données dans la table...
contentPane.add(new JSCrollPane(table), BorderLayout.CENTER); 



et pour ta fenetre, juste avant le setVisible(true), je te conseille un pack() et un setLocationRelativeTo(null)
comme cela, elle prendra la taille requise pour afficher au mieux ses composants et te la centrera par rapport à ton écran...

P.S. code fait de tete, il y a peut-être l'une ou l'autre erreur de case...
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
24 avril 2012 à 13:01
Bonjour.
Si ton code marche sous Netbeans et pas sur eclipse c'est sans doute que tu as un soucis de classpath pour ton driver mysql ?
Es tu sur de ne pas avoir d'erreur dans la console ?
0
saddimon Messages postés 2 Date d'inscription dimanche 15 avril 2012 Statut Membre Dernière intervention 24 avril 2012
24 avril 2012 à 14:04
Bjr , je suis sur une application qui utilise une base access , ma conexion ce fait normalement mais auccune requete ne s'execute , l'erreur :
java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO
ma requete est :
req="INSERT INTO Note VALUES('3','5','2','1');";

je travail sous windows 7 professionel (64 bits).




Merci d'avence
Silver.Saddouch
0
cormandyr Messages postés 600 Date d'inscription samedi 20 mai 2006 Statut Membre Dernière intervention 8 juillet 2016 11
24 avril 2012 à 14:17
Salut,

Tu ne devrais pas lui dire quelle valeur va dans quel champs de ta table?
De plus, si ce sont des valeurs numériques, tu ne dois pas les encadrer avec des '
0
Rejoignez-nous