Accès et affichage des informations d'une Base de Données

mouhamedba911 - 3 janv. 2013 à 15:59
 mouhamedba911 - 10 janv. 2013 à 11:29
slt je suis débutant en programmation..
j'avais télécharger une application qui permet d'accéder à une base de données.
Après l'importation et lancement de l'application,c'est seulement la structure de la base de données (les différentes tables) qui me sont affichées hors je veux avoir les informations stockées dans la base...(par exemple si j'avais à afficher tous les utilisateurs avec leur NOM,PRENOM et MOT DE PASSE...

Voici les différentes classes

**** Première classe:


package GUI;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;

public class BDConnect {
private String driver;
private String url;
private String id;
private String pw;
private Connection con;
private String sgbd;
private String dbname;

public BDConnect() {
driver = "";
url = "jdbc:mysql://localhost:3306/";
id = "login";
pw = "";
}

public void setDriver(String driver) {
this.driver = driver;
}

public void setUrl(String url) {
this.url = url;
}

public String getUrl() {
return this.url;
}

public void setId(String id) {
this.id = id;
}

public void setPw(String pw) {
this.pw = pw;
}

public void setSGBD(String sgbd) {
this.sgbd = sgbd;
}

public String getSGBD() {
return this.sgbd;
}

public void setDBName(String dbname) {
this.dbname = dbname;
}

public String getDBName() {
return this.dbname;
}

public boolean Connect() {
boolean isCon = false;

if (driver "" && url "")
JOptionPane.showMessageDialog(null,
"Connexion impossible, car driver ou url non renseigner",
"Connexion", JOptionPane.ERROR_MESSAGE);
else {
try {
Class.forName(driver);
con = DriverManager.getConnection(url, id, pw);
isCon = true;
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null,
"Problème avec le driver ODBC", "Connexion",
JOptionPane.ERROR_MESSAGE);

} catch (SQLException e) {
JOptionPane.showMessageDialog(null,
"Impossible de se connecter à la base", "Connexion",
JOptionPane.ERROR_MESSAGE);
}
}
return isCon;
}

public String[] getTables() {
DatabaseMetaData metaData;
ResultSet bd;
String[] tb;
List<String> tbf = new ArrayList<String>();

int i = 0;

try {
metaData = con.getMetaData();
bd = metaData.getTables(con.getCatalog(), null, "%", null);
while (bd.next()) {
if (bd.getString(4).equals("TABLE"))
tbf.add(bd.getString(3));
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Connexion",
JOptionPane.ERROR_MESSAGE);
}

tb = new String[tbf.size()];
for (i = 0; i < tb.length; i++)
tb[i] = tbf.get(i).toString();

return tb;
}

public String[] getChamp(String tab) {
DatabaseMetaData metaData;
ResultSet tbl;
String[] tb;
List<String> tbf = new ArrayList<String>();

int i = 0;

try {
metaData = con.getMetaData();

tbl = metaData.getColumns(con.getCatalog(), null, tab, "%");

while (tbl.next())
tbf.add(tbl.getString(4));
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Connexion",
JOptionPane.ERROR_MESSAGE);
}

tb = new String[tbf.size()];
for (i = 0; i < tb.length; i++)
tb[i] = tbf.get(i).toString();

return tb;

}

public String[] getChpInfo(String tab, String chp) {
DatabaseMetaData metaData;
ResultSet tbl;
String res[] = new String[2];
;

try {
metaData = con.getMetaData();
tbl = metaData.getColumns(con.getCatalog(), null, tab, "%");

while (tbl.next())
if (tbl.getString(4).equals(chp)) {
res[0] = tbl.getString(6);
res[1] = (tbl.getInt(11) == 1) ? "Oui" : "Non";
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Connexion",
JOptionPane.ERROR_MESSAGE);
}

return res;
}

public void Close() {
try {
con.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Connexion",
JOptionPane.INFORMATION_MESSAGE);
}
}
}

**** Seconde classe:


package GUI;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.filechooser.FileNameExtensionFilter;

public class chDBase extends JFrame {
private JTabbedPane chDBase;
private JPanel msAcces;
private JPanel MySQL;
private JButton btnTest;
private JPasswordField txtPW;
private JButton btnDBPath;
private JLabel lblpwd;
private JTextField txtID;
private JLabel lblCompt;
private JCheckBox cbProtect;
private JFileChooser dbPath;
private JTextField txtDBPath;
private JLabel lblDBPath;
private JLabel lblTitre;
private final BDConnect con;
private JTextField txtPort;
private JLabel jLabel5;
private JButton btnRep;
private JTextField txtAdd;
private JLabel jLabel4;
private JPasswordField txtPw;
private JLabel jLabel3;
private JTextField txtId;
private JLabel jLabel2;
private JTextField txtBase;
private JLabel jLabel1;
private JButton btnAInfo;

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new chDBase();
}
});
}

public chDBase() {
super();
con = new BDConnect();
initGUI();
}

private void initGUI() {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
pack();
this.setBounds(250, 130, 580, 500);
setLayout(null);
setVisible(true);
this.setTitle("Connexion à une base de données :: jiDBase");
{
chDBase = new JTabbedPane();
getContentPane().add(chDBase);
chDBase.setBounds(45, 87, 475, 306);
chDBase.setFont(new java.awt.Font("Verdana", 0, 16));
{
msAcces = new JPanel();
chDBase.addTab("Microsoft Acces", null, msAcces, null);
msAcces.setLayout(null);
msAcces.setFont(new java.awt.Font("Verdana", 0, 14));
{
lblDBPath = new JLabel();
msAcces.add(lblDBPath);
lblDBPath.setText("Choisir une base de données :");
lblDBPath.setBounds(21, 26, 209, 19);
lblDBPath.setFont(new java.awt.Font("Verdana", 0, 12));
}
{
txtDBPath = new JTextField();
msAcces.add(txtDBPath);
txtDBPath.setBounds(40, 52, 260, 23);
txtDBPath.setFont(new java.awt.Font("Verdana", 0, 14));
txtDBPath.setEditable(false);
}
{
btnDBPath = new JButton();
msAcces.add(btnDBPath);
btnDBPath.setText("Chemin");
btnDBPath.setBounds(314, 45, 104, 36);
btnDBPath.setFont(new java.awt.Font("Verdana", 1, 14));
btnDBPath.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
int result = dbPath.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION)
txtDBPath.setText(dbPath.getSelectedFile()
.getPath());
}
});
}
{
cbProtect = new JCheckBox();
msAcces.add(cbProtect);
cbProtect.setText("Protégé");
cbProtect.setBounds(36, 96, 119, 23);
cbProtect.setFont(new java.awt.Font("Verdana", 0, 12));
cbProtect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (cbProtect.isSelected()) {
txtID.setEditable(true);
txtPW.setEditable(true);
txtID.grabFocus();
} else {
txtID.setEditable(false);
txtPW.setEditable(false);
}

}
});
}
{
lblCompt = new JLabel();
msAcces.add(lblCompt);
lblCompt.setText("Compte :");
lblCompt.setBounds(62, 126, 102, 16);
lblCompt.setFont(new java.awt.Font("Verdana", 0, 12));
}
{
txtID = new JTextField();
msAcces.add(txtID);
txtID.setBounds(167, 124, 157, 24);
txtID.setEditable(false);
txtID.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
lblpwd = new JLabel();
msAcces.add(lblpwd);
lblpwd.setText("Mot de passe :");
lblpwd.setFont(new java.awt.Font("Verdana", 0, 12));
lblpwd.setBounds(62, 161, 95, 16);
}

{
txtPW = new JPasswordField();
msAcces.add(txtPW);
txtPW.setEditable(false);
txtPW.setBounds(167, 161, 157, 22);
txtPW.setFont(new java.awt.Font("Verdana", 0, 24));
}
{
btnTest = new JButton();
msAcces.add(btnTest);
btnTest.setText("Tester");
btnTest.setBounds(324, 192, 86, 34);
btnTest.setFont(new java.awt.Font("Verdana", 0, 12));
btnTest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (txtDBPath.getText().equals(""))
JOptionPane.showMessageDialog(null,
"Veuillez choisir une base de données",
"Connexion", JOptionPane.ERROR_MESSAGE);
else {
ConMsAcc();

if (con.Connect()) {
JOptionPane.showMessageDialog(null,
"Connexion ok", "Connexion",
JOptionPane.INFORMATION_MESSAGE);
con.Close();
}
}
}
});
}

{
dbPath = new JFileChooser("c:");
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"Access DataBase", "mdb");

dbPath.setFileFilter(filter);
}
}
{
MySQL = new JPanel();
chDBase.addTab("MySQL", null, MySQL, null);
MySQL.setLayout(null);
{
btnRep = new JButton();
MySQL.add(btnRep);
btnRep.setText("Tester");
btnRep.setBounds(330, 226, 91, 34);
btnRep.setFont(new java.awt.Font("Verdana", 0, 14));
btnRep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (txtBase.getText().equals(""))
JOptionPane.showMessageDialog(null,
"Veuillez Entrer une base de données",
"Connexion", JOptionPane.ERROR_MESSAGE);
else {
ConMySql();

if (con.Connect()) {
JOptionPane.showMessageDialog(null,
"Connexion ok", "Connexion",
JOptionPane.INFORMATION_MESSAGE);
con.Close();
}
}
}
});
}
{
jLabel1 = new JLabel();
MySQL.add(jLabel1);
jLabel1.setText("Base de données");
jLabel1.setBounds(29, 27, 114, 19);
jLabel1.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
txtBase = new JTextField();
MySQL.add(txtBase);
txtBase.setBounds(54, 52, 167, 22);
txtBase.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel2 = new JLabel();
MySQL.add(jLabel2);
jLabel2.setText("Compte");
jLabel2.setBounds(39, 115, 71, 18);
jLabel2.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
txtId = new JTextField();
MySQL.add(txtId);
txtId.setText("root");
txtId.setBounds(69, 139, 152, 25);
txtId.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel3 = new JLabel();
MySQL.add(jLabel3);
jLabel3.setText("Mot de passe");
jLabel3.setBounds(39, 174, 113, 17);
jLabel3.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
txtPw = new JPasswordField();
MySQL.add(txtPw);
txtPw.setBounds(69, 197, 152, 27);
txtPw.setFont(new java.awt.Font("Verdana", 0, 24));
}
{
jLabel4 = new JLabel();
MySQL.add(jLabel4);
jLabel4.setText("Adresse");
jLabel4.setBounds(251, 74, 70, 17);
jLabel4.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
txtAdd = new JTextField();
MySQL.add(txtAdd);
txtAdd.setText("Localhost");
txtAdd.setBounds(277, 97, 128, 23);
txtAdd.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel5 = new JLabel();
MySQL.add(jLabel5);
jLabel5.setText("Port");
jLabel5.setBounds(251, 126, 70, 20);
jLabel5.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
txtPort = new JTextField();
MySQL.add(txtPort);
txtPort.setBounds(277, 152, 59, 22);
txtPort.setFont(new java.awt.Font("Verdana", 0, 14));
}
}
}
{
lblTitre = new JLabel();
getContentPane().add(lblTitre);
lblTitre.setText("Choisir un SGBD");
lblTitre.setBounds(186, 19, 221, 57);
lblTitre.setFont(new java.awt.Font("Verdana", 1, 24));
}
{
btnAInfo = new JButton();
getContentPane().add(btnAInfo);
btnAInfo.setText("Afficher Info");
btnAInfo.setBounds(372, 411, 148, 39);
btnAInfo.setFont(new java.awt.Font("Verdana", 0, 14));
btnAInfo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (chDBase.getSelectedIndex() == 0)
ConMsAcc();

if (chDBase.getSelectedIndex() == 1)
ConMySql();

if (con.Connect()) {
// dispose();
new dbInfo(con);
}
}
});
}

}

private void ConMsAcc() {
con.setSGBD("Microsoft ACCESS");
con.setDriver("sun.jdbc.odbc.JdbcOdbcDriver");

con.setUrl("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="
+ txtDBPath.getText());

if (cbProtect.isSelected()) {
con.setId(txtID.getText());
con.setPw(txtPW.getText());
}

int tb = txtDBPath.getText().lastIndexOf("\");
String tbs = txtDBPath.getText().substring(tb + 1);
con.setDBName(tbs.substring(0, tbs.length() - 4));
}

private void ConMySql() {
con.setSGBD("MySQL");
con.setDBName(txtBase.getText());
con.setDriver("com.mysql.jdbc.Driver");

con.setId(txtId.getText());
con.setPw(txtPw.getText());

String str = txtAdd.getText();
if (!txtPort.getText().equals(""))
str += ":" + txtPort.getText();
str += "/" + txtBase.getText();
con.setUrl("jdbc:mysql://" + str);
}
}


**** Troisième classe:



package GUI;

import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListModel;
import javax.swing.WindowConstants;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class dbInfo extends JFrame {
private JLabel lblTitre;
private JPanel jPanel1;
private JList lstTab;

private final BDConnect con;
private JLabel lblChp;
private JLabel lblNull;
private JLabel lblTyp;
private JLabel jLabel5;
private JLabel lblTotChp;
private JLabel lblTotTab;
private JLabel lblPath;
private JLabel lblBase;
private JLabel lblSgbd;
private JLabel jLabel7;
private JLabel jLabel6;
private JLabel jLabel4;
private JLabel jLabel3;
private JScrollPane jScrollPane2;
private JLabel jLabel9;
private JLabel jLabel8;
private JPanel jPanel3;
private JPanel jPanel2;
private JLabel jLabel2;
private JScrollPane jScrollPane1;
private JList lstChamp;
private JLabel jLabel1;
private ListModel lstChampModel;
private ListModel lstTabModel;

public dbInfo(BDConnect con) {
super();
this.con = con;
con.Connect();
initGUI();
con.Close();
}

private void initGUI() {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
setBounds(170, 80, 600, 600);
setVisible(true);
setTitle("Schemas de " + con.getDBName() + " :: jiDBase");
{
lblTitre = new JLabel();
getContentPane().add(lblTitre);
lblTitre.setText("Afficher les infos de " + con.getDBName());
lblTitre.setFont(new java.awt.Font("Verdana", 1, 24));
lblTitre.setBounds(35, 6, 531, 37);
}
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1);
jPanel1.setLayout(null);
jPanel1.setBounds(25, 219, 521, 259);
jPanel1.setBorder(BorderFactory
.createTitledBorder(null, "Schema de " + con.getDBName(),
TitledBorder.LEADING, TitledBorder.ABOVE_TOP,
new java.awt.Font("Verdana", 1, 12)));
{
jScrollPane2 = new JScrollPane();
jPanel1.add(jScrollPane2);
jScrollPane2.setBounds(31, 48, 155, 195);
jScrollPane2.getVerticalScrollBar().setAutoscrolls(true);
jScrollPane2.getHorizontalScrollBar().setAutoscrolls(true);
jScrollPane2.setBorder(new LineBorder(new java.awt.Color(0, 0,
0), 1, false));
{
lstTabModel = new DefaultComboBoxModel(con.getTables());

lstTab = new JList();
jScrollPane2.setViewportView(lstTab);
lstTab.setModel(lstTabModel);
lstTab.setBounds(26, 59, 147, 195);
lstTab.setPreferredSize(new java.awt.Dimension(136, 309));
lstTab
.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent evt) {
String str;
str = lstTabModel.getElementAt(
lstTab.getSelectedIndex())
.toString();
con.Connect();
lstChampModel = new DefaultComboBoxModel(
con.getChamp(str));

lstChamp.setModel(lstChampModel);
con.Close();
}
});

}
}
{
jLabel1 = new JLabel();
jPanel1.add(jLabel1);
jLabel1.setText("Tables");
jLabel1.setBounds(54, 26, 51, 16);
jLabel1.setFont(new java.awt.Font("Verdana", 1, 12));
}
{
jLabel2 = new JLabel();
jPanel1.add(jLabel2);
jLabel2.setText("Champs");
jLabel2.setFont(new java.awt.Font("Verdana", 1, 12));
jLabel2.setBounds(333, 26, 61, 16);
}
{
jScrollPane1 = new JScrollPane();
jPanel1.add(jScrollPane1);
jScrollPane1.setBounds(306, 48, 155, 199);
jScrollPane1.getVerticalScrollBar().setAutoscrolls(true);
jScrollPane1.getHorizontalScrollBar().setAutoscrolls(true);
jScrollPane1.setBorder(new LineBorder(new java.awt.Color(0, 0,
0), 1, false));
jScrollPane1.setAutoscrolls(true);
{
lstChamp = new JList();
jScrollPane1.setViewportView(lstChamp);
lstChamp.setBounds(349, 57, 135, 202);
lstChamp.setPreferredSize(new java.awt.Dimension(136, 310));
lstChamp.setAutoscrolls(false);
lstChamp
.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent evt) {
lblChp.setText(lstChampModel.getElementAt(
lstChamp.getSelectedIndex())
.toString());
String str = lstTabModel.getElementAt(
lstTab.getSelectedIndex())
.toString();
con.Connect();
String tstr[] = con.getChpInfo(str, lblChp
.getText());
con.Close();
lblTyp.setText(tstr[0]);
lblNull.setText(tstr[1]);

}
});
}
}
}
{
jPanel2 = new JPanel();
getContentPane().add(jPanel2);
jPanel2.setBounds(32, 484, 521, 71);
jPanel2.setBorder(BorderFactory.createTitledBorder(null,
"Info sur ", TitledBorder.LEADING, TitledBorder.ABOVE_TOP,
new java.awt.Font("Verdana", 1, 12)));
jPanel2.setLayout(null);
{
jLabel8 = new JLabel();
jPanel2.add(jLabel8);
jLabel8.setText("Type");
jLabel8.setBounds(49, 26, 59, 19);
jLabel8.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel9 = new JLabel();
jPanel2.add(jLabel9);
jLabel9.setText("Null Autorisé");
jLabel9.setBounds(345, 26, 112, 19);
jLabel9.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
lblTyp = new JLabel();
jPanel2.add(lblTyp);
lblTyp.setBounds(80, 45, 265, 20);
lblTyp.setFont(new java.awt.Font("Verdana", 1, 14));
}
{
lblNull = new JLabel();
jPanel2.add(lblNull);
lblNull.setBounds(380, 46, 99, 18);
lblNull.setFont(new java.awt.Font("Verdana", 1, 14));
}
{
lblChp = new JLabel();
jPanel2.add(lblChp);
lblChp.setBounds(74, 1, 190, 19);
lblChp.setFont(new java.awt.Font("Verdana", 1, 11));
lblChp.setForeground(new java.awt.Color(0, 70, 213));
}
}
{
jPanel3 = new JPanel();
getContentPane().add(jPanel3);
jPanel3.setLayout(null);
jPanel3.setBounds(15, 43, 538, 158);
jPanel3.setBorder(BorderFactory
.createTitledBorder(null, "Info Générale",
TitledBorder.LEADING, TitledBorder.ABOVE_TOP,
new java.awt.Font("Verdana", 1, 12)));
{
jLabel3 = new JLabel();
jPanel3.add(jLabel3);
jLabel3.setText("SGBD :");
jLabel3.setBounds(26, 28, 152, 16);
jLabel3.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel4 = new JLabel();
jPanel3.add(jLabel4);
jLabel4.setText("Base de donnée :");
jLabel4.setBounds(26, 49, 152, 20);
jLabel4.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel5 = new JLabel();
jPanel3.add(jLabel5);
jLabel5.setText("Localisation :");
jLabel5.setBounds(26, 75, 145, 14);
jLabel5.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel6 = new JLabel();
jPanel3.add(jLabel6);
jLabel6.setText("Total des Tables :");
jLabel6.setBounds(26, 98, 145, 17);
jLabel6.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
jLabel7 = new JLabel();
jPanel3.add(jLabel7);
jLabel7.setText("Total des Champs :");
jLabel7.setBounds(26, 121, 145, 20);
jLabel7.setFont(new java.awt.Font("Verdana", 0, 14));
}
{
lblSgbd = new JLabel();
jPanel3.add(lblSgbd);
lblSgbd.setBounds(178, 27, 200, 20);
lblSgbd.setFont(new java.awt.Font("Verdana", 1, 14));
}
{
lblBase = new JLabel();
jPanel3.add(lblBase);
lblBase.setBounds(178, 51, 237, 18);
lblBase.setFont(new java.awt.Font("Verdana", 1, 14));
}
{
lblPath = new JLabel();
jPanel3.add(lblPath);
lblPath.setBounds(177, 73, 355, 21);
lblPath.setFont(new java.awt.Font("Verdana", 1, 14));
}
{
lblTotTab = new JLabel();
jPanel3.add(lblTotTab);
lblTotTab.setBounds(177, 97, 73, 20);
lblTotTab.setFont(new java.awt.Font("Verdana", 1, 14));
}
{
lblTotChp = new JLabel();
jPanel3.add(lblTotChp);
lblTotChp.setBounds(175, 123, 75, 18);
lblTotChp.setFont(new java.awt.Font("Verdana", 1, 14));
}

{
lblSgbd.setText(con.getSGBD());
lblBase.setText(con.getDBName());
String str = "";
String tb[], chp[];
int i, j = 0;
if (con.getSGBD().endsWith("ESS")) {
i = con.getUrl().lastIndexOf("=");
str = con.getUrl().substring(i + 1);

}
if (con.getSGBD().equals("MySQL")) {
i = con.getUrl().indexOf("/");
str = con.getUrl().substring(i + 2);
}

lblPath.setText(str);
lblPath.setToolTipText(str);
tb = con.getTables();
lblTotTab.setText(Integer.toString(tb.length));
for (i = 0; i < tb.length; i++)
j += con.getChamp(tb[i]).length;
lblTotChp.setText(Integer.toString(j));
}

}
}
}

10 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 janv. 2013 à 08:54
Salut,

Je ne vois aucun accès à la base de données dans ce code. Il y a bien le code qui permet d'initialiser la connexion mais aucune requête n'est lancée sur la base.

De plus le code que tu as récupéré est bourré de maladresses.
0
mouhamedba911
4 janv. 2013 à 09:09
salut Julien39..
merci pour l'intervention mais je vs signale que le code marche très bien
une fois compilée et lancée..
sinon j'aurai bien aimé que vs me souligniez les maladresses dont faites...
ça m'aiderait à m'améliorer...
Cdlt!!!
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 janv. 2013 à 10:04
Je ne dis pas que le code ne fonctionne pas, mais en tout cas, il manque la partie intéressante qui me permettrait de te dire pourquoi le contenu de tes tables n'est pas affiché. Où est la requête SQL ?

Ou alors, je suis passé à côté, c'est possible aussi.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 janv. 2013 à 10:09
Pour les maladresses :

catch (ClassNotFoundException e) { : c'est une RuntimeException, il ne faut donc pas la catcher mais la propager. C'est une erreur de codage.

if (driver = = "" && url == "") : cette condition sera toujours fausse parce que ce sont les références qui sont comparées :
String s1 ="";
String s2="";
System.out.println(s1==s2);
// affiche faux

if (driver.equals("") && url.equals(""))


Les JOptionPane dans le code métier qui permet d'accéder à la base

Les noms de variables qui ne sont pas parlants : tbf ou jLabel5 par exemple.

Je ne comprend pas pourquoi tu créé une instance de Runnable pour lancer ton programme, ca ne sert à rien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mouhamedba911
4 janv. 2013 à 10:59
Ok je vois ce que vs voulez dire..
Mais mon problème est que la requete sql ( LOAD DATA INFILE '...chemin du fichier..' INTO TABLE 'nom_table') qui fait le dispatching des informations dans la table je ne peux le faire qu'à partir de Mysql..Et je voudrais bien savoir comment l'insérer dans une interface dans l'application..
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 janv. 2013 à 11:03
Ha ok, tu ne fais pas d'affichage avec java.

Par exemple si les informations sont dans des textBox :
String cheminFichier=textBox1.getText();;
String nomTable=textBox2.getText();
connexion.executeUpdate("LOAD DATA INFILE '"+cheminFichier+"' INTO TABLE '"+nomTable+"'");
0
mouhamedba911
4 janv. 2013 à 11:08
attendez que je mette ça pour voir ce que ça donne..
0
mouhamedba911
4 janv. 2013 à 11:13
ce bout de code java je l'insère dans " class BDConnect " ou bien??? désolé han c'est l'effet d'un débutant,je m'y connais pas trop...
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 janv. 2013 à 13:51
Non, la classe BDConnect te sert à initialiser la connexion à la base de données.

C'est juste un exemple, tu ne peux pas l'utiliser en tant que tel. J'ai l'impression que tu ne connais pas grand chose sur la facon d'accéder aux bases de données avec java. Tu devrais peut être trouver un tutoriel sur JDBC je pense que ca te serait très utile.
0
mouhamedba911
10 janv. 2013 à 11:29
oui c'est vrai je viens fraichement de débuter avec ce langage..
sinon merci pour les conseils,je n'y manquerai pas..
Bien des choses..
0
Rejoignez-nous