Rechercher : dans
Par :

JAVA sous netbeans et base de donnée access

Dernière réponse le 14 jan 2009 à 14:28:01 donuts, le 8 jan 2009 à 14:17:41 
 Signaler ce message aux modérateurs

Bonjour,
j'ai établi une connexion avec ma base de donnée dans une fonction connect()
et j'ai tenté de faire une requête de lecture de donnée dans la base




public ResultSet SQLSelect(String sql) throws SQLException {

Statement creerconnec = null;

ResultSet RS = null;

try {

creerconnec = connection.createStatement();
RS = creerconnec.executeQuery(" SELECT Nom du prof,Prènom From Table1 ");

int execut = creerconnec.executeUpdate(sql);
System.out.println("liste des professeurs :");

while(RS.next()){

System.out.println(RS.getString("Nom du prof,Prènom"));

}
}

catch (SQLException e) {

RS.close();

creerconnec.close();

return null;

}
return null;
}




lorsque je lance mon programme rien ne s'affiche quelqu'un peut me mettre sur la voie ?

Configuration: Windows XP
Firefox 3.1

Meilleures réponses pour « JAVA sous netbeans et base de donnée access » dans :
Connexion à la base de données avec JDBC VoirConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la...
Java - L'API JDBC VoirIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec...
Bases de données - Introduction VoirQu'est-ce qu'une base de données ? Une base de données (son abréviation est BD, en anglais DB, database) est une entité dans laquelle il est possible de stocker des données de façon structurée et avec le moins de redondance possible. Ces données...

1

freto, le 8 jan 2009 à 16:07:56

Fait un System.out.println(e.getMessage()); dans ton bloc
catch (SQLException e) {

RS.close();

creerconnec.close();

return null;

}.
Ou tout autre te permettant de verifier si tu passe par le bloc catch.
Et vérifie aussi que Access soit bien lancé, avec la bonne base ouverte.

Pitite question: ya pas un passage de paramètre que tu zappe? parce rien n'indique dans ce code que tu te connecte à une certaine base. Tu ne l'a pas défini en tout cas What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto

2

donuts, le 8 jan 2009 à 16:58:28

Salut merci d'avoir repondu

enfaite j'ai une fonction connect() juste avant

public boolean connect()
{

try
{
// Chargement du driver ODBC

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// Connexion à la base
//ici se trouve l'adresse de la base de donnée "BDD.mdb"
String connectionString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*BDD.mdb)}; DBQ=" + chemin;
connection = DriverManager.getConnection(connectionString);
}
//erreur class résidu du driver ODBC non trouvé
catch (ClassNotFoundException e)
{

System.out.println("Problème avec le driver ODBC");

return false;

}
//erreur de connection à la base
catch (SQLException e)


{

System.out.println("Impossible de se connecter à la base");

return false;
}
return true;
}

Répondre à donuts

3

freto, le 8 jan 2009 à 17:02:46

He beh certes, mais dans ta deuxième fonction, ou dans ton main (parce qu'il faut un main pour que sa se lance a un moment donné), il faut faire un connect(); sinon il va pas se connecter. What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto

4

donuts, le 10 jan 2009 à 15:55:48

Pas bete ça ! lol

nan mais le soucis c'est que j'utilise des jframe avec netbeans (j'ai pas vraiment de main mon main c'est ma première fenêtre)
et quand je met

public class debut extends javax.swing.JFrame {

/** Creates new form debut */
public debut() {
initComponents();
connect();
}
public String chemin;
public Connection connection;
//constructeur
public debut(String chemin){
this.chemin = chemin;

}

ça ne fonctionne pas j'ai rajouté un fprintf pour afficher un petit message au lancement de la fonction connect() et j'ai aucun résultat :(

qu'est que j'ai oublié à ton avis ?

Répondre à donuts

5

freto, le 11 jan 2009 à 02:25:33

Si tu programme pas en thread, ou si tu n'appele rien après ton connect, sa sert a rien.
Il faut savoir que ce que tu fait dans un bloc reste dans le bloc. En gros, ton connect te connect a ta bdd, mais si tu fait rien après, il sort et tu ne peut plus utiliser la connexion.
Il faudrait que ta fonction connect te renvoie quelque chose pour utiliser la connection, par exemple un objet qui te permettrait de faire des requetes What's tiny, and yellow and very very dangerous?????
A canary with the super-user password.
Mouhahahaha

Répondre à freto

6

 denis, le 14 jan 2009 à 14:28:01

Bonjour tout d'abord merci d'avoir répondu à mes postes

j'ai réglé le problème de connexion

mon objet connexion n'appelait pas les drivers

j'ai remplacé
connexion=DriverManager.getConnection(connectingString);
par
connexion=DriverManager.getConnection("jdbc:odbc:albums","","");

et mon programme se connecte bien à ma base Access par la fonction connect()

mais maintenant j'ai un autre problème...

j'ai mis une requête dans un try catch mais je n'arrive pas à avoir la fonction executeQuery

try{
Statement etat = connection.createStatement();
ResultSet rs = etat.?????;

}
catch(SQLExeption e){
JOptionPane.showmessageDialog(this,"erreur d'execution de la requête"+e.detMassage());
}

while (rs.next()){
System.out.print(rs.getstring(1));........etc

Répondre à denis
Collection CommentÇaMarche.net