Connection a ma base de donnees

dmo83 Messages postés 79 Date d'inscription vendredi 19 août 2011 Statut Membre Dernière intervention 11 octobre 2011 - 2 sept. 2011 à 10:12
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 2 sept. 2011 à 11:28
slt! je voudrais k tu m'aide concernant mon code lorsque je veux ajouter un nouveau produit et ensuite l'enregistrer dans ma base de données je travaille avec oracle jdeveloper 11g j'utilise swing pour mes interfaces utilisateurs voici le code:

import java.awt.Dimension;

import java.awt.Font;
import java.awt.Rectangle;

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

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import java.util.logging.Logger;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;




//code pour ajouter un produit:
public void jButton1(String ref,String designation,double prix) throws Exception{
Connection conn = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@localhost:1521:PRODUIT";
String nom="dieme";
String password="diememoise";
//ClasscDriverOracle= class.forName("oracle.jdbc.Driver.oracleDriver");
conn = DriverManager.getConnection(url,nom,password);
if (conn == null)
System.out.println("ECHEC CONNECTION");
//return (false);
String requete = "insert into PRODUIT values('" + ref + "','" + designation + "','"+prix+"')";
Statement st = conn.createStatement();
rs =st.executeUpdate(requete);
st.close();
conn.close();
}
}


//pour enregistrer
private void enregistrer_actionPerformed(ActionEvent e) {
if(jOptionPane.showConfirmDialog(this,"voulez-vous enregistrer cet produit?","Enrégistrement du produit",0)==0)
try{
jButton1(jTextField1.getText(),jButton2.getText(),jButton3.getText());
}

catch(Exception ex){
Logger.getLogger(produit.class.getName()).log(level.SEVERE,null,ex);

}
}

//Affiche tous les produits enregistrer dans dans la base de données
public void jButton4(){

Connection conn = null;
ResultSet rs = null;
try{
String url ="jdbc:oracle:thin:@localhost:1521:xe:PRODUIT";
//ClasscDriverOracle= class.forName("oracle.jdbc.Driver.oracleDriver");
conn = DriverManager.getConnection(url);
if (conn == null)
return (false);
String requete = "select* from PRODUIT";
Statement st =conn.createStatement();
rs = st.executeQuery(requete);

while(rs.next()){
rdp=rs.getString("nom")+" "+rs.getString("designation")+" "+rs.getDouble("prix");

}

}

catch(ClassNotFoundException ce){
// System.out.println("MAUVAIS PILOTE");
jOptionPane.showMessageDialog(null,"mauvais pilote","Erreur",jOptionPane.ERROR_MESSAGE);

}

catch(SQLException se){
// System.out.println("SQL INCORRECTE");
jOptionPane.showMessageDialog(null,"sql incorrecte","Erreur",jOptionPane.ERROR_MESSAGE);

}

finally{
if(st!=null){
try{
st.close();
}
catch(SQLException el){
el.printStackTrace();
}
}

if(rs!=null){
try{
rs.close();
}
catch(SQLException qe){
qe.printStackTrace();
}
}

if(conn!=null){
try{
conn.close();
}
catch(SQLException le){
le.printStackTrace();
}
}
}

return rdp;
}




voici ce qu'il me mets comme erreurs:
incompatible types // executeUpdate(requete);
cannot find variable jOptionPane,level, ref, prix designation,st;

cannot find method jButton1(java.lang.String,java.lang.String,java.lang.String);

cannot return a value from method whose result type is void

MERCI D'AVANCE A TOI!

bigboss

2 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
2 sept. 2011 à 10:43
Bonjour,

Quand tu commences à coder une classe, il vaut mieux ne pas gérer les exceptions tout de suite et pour celles que tu es obligé de catcher, utilises un e.printStackTrace() de cette facon, tu as la trace de l'erreur et tu peux corriger ton application facilement.

Pour ton erreur d'update, je pense que tu as du mal utiliser les ' ne les met que si le type de donnée à enregistrer est de type texte. Je pense que ce n'est pas le cas de prix ?

Enlèves les catch(ClassNotFoundException ce), c'est un try qu'on pourrait mettre partout, il ne faut pas catcher cette exception.

Quand tu auras les traces des erreurs, donne les nous et je t'aiderai
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
2 sept. 2011 à 11:28
Vu ton autre message et ses suites : http://www.javafr.com/forum/sujet-CONNEXION-BD-AVEC-ORACLE-JDEVELOPER-11G_1544495.aspx

Ton erreur n'est pas liée à ces fonctions mais à l'ajout du driver odbc dans ton classpath, d'où le catch(ClassNotFoundException ec) qui était nécessaire car cette exception devait être levée.
0