Bonjour,
Je dois utiliser preparedstatement pour inserer dans la table la ligne que tape l'utilisateur, mais à la fin il affiche juste Exception:null. Je ne comprends pas.
Merci de m'aider;
Bonjour,
Je dois utiliser preparedstatement pour inserer dans la table la ligne que tape l'utilisateur, mais à la fin il affiche juste Exception:null. Je ne comprends pas.
Merci de m'aider;
Peux-tu mettre le code qui coince ?
A+
Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 BufferedReader lineReader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Entrez votre id: "); String lid = lineReader.readLine(); System.out.print("Entrez votre salle: "); String laSalle = lineReader.readLine(); System.out.print("Entrez l'id du message parent si vous répondez à un message: "); String leParent = lineReader.readLine(); System.out.print("Entrez votre Titre ou bien mettez RE: le tire du message parent: "); String leTitre = lineReader.readLine(); System.out.print("Entrez le corps de votre message puis appuyer sur entrer: "); String lecorps = lineReader.readLine(); String ajout = "INSERT INTO message VALUES(?,?,?,?,?,?,?)"; ResultSet result; PreparedStatement pstat = connect.prepareStatement(ajout); Date sysdate = new Date(); // On fixe une première valeur pour l'argument pstat.setInt(1,8); pstat.setInt(2, Integer.parseInt((lid))); pstat.setInt(3, Integer.parseInt((laSalle))); pstat.setInt(4, Integer.parseInt((leParent))); pstat.setDate(5, (java.sql.Date) sysdate); pstat.setString(6, leTitre); pstat.setString(7, lecorps); pstat.executeUpdate(ajout); // On obtient le résultat result = pstat.executeQuery();
Tu ne peux pas faire ça
le preparedStatement contient le code pour l'insertion, pas une lecture...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 pstat.executeUpdate(ajout); <-- ça, c'est OK, au contenu des colonnes prêt // On obtient le résultat result = pstat.executeQuery(); <-- ça, c'est OUT
Quelle est l'erreur renvoyée ?
quand je fini d'entrer mes données et que j'appuie sur entrer j'ai Exception: null
Comment récupères-tu la connexion (connect) ?
oui je me connecte avec connect = ods.getConnection("login","motde passe");
j'ai trouvé enfait c'est l'exception que j'ai fait. A la fin du code j'ai mis
Mais je ne sais pas pourquoi ça fait ça?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 catch(Exception e) { System.out.println ("Exception: "+e.getMessage()); }
Oui mais est ce qu'il te retourne une connexion ?
Tu as essayé en debug ?
oui normalement parce que avant ça marchai avec les requetes.
Est ce que j'ai respecté les types dans les set? parce que quand je les mets en commentaire je n'ai pas d'exception.
Affiches plutôt la stacktrace que le message de l'exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part e.printStackTrace();
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
Avec e.printStackTrace et system.println(e) j'ai
Le problème c'est la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 java.lang.ClassCastException Exception:: java.lang.ClassCastException at Conn.main(Conn.java:59)je voulais mettre la date courante
Code : Sélectionner tout - Visualiser dans une fenêtre à part pstat.setDate(5, (java.sql.Date) sysdate);
La class java.sql.Date hérite de java.util.Date, mais de ce fait une java.util.Date n'est pas forcément une java.sql.Date, donctu ne peux pas directement caster la seconde vers la première.
utilises plutôt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 pstat.setDate(5, (new java.sql.Date(sysdate.getTime()));
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
mais maintenant j'aiEt dans mon code ça souligne la ligne pstat.executeUpdate(ajout);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 java.sql.SQLException: ORA-03115: type de réseau ou représentation non pris en compte at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:626) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:182) at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:630) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1081) at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1483) at Conn.main(Conn.java:64) Exception:: java.sql.SQLException: ORA-03115: type de réseau ou représentation non pris en compte
Je ne comprend pas les requetes que j'ai faites precedement ont fonctionné.
Salut,
d'après le msg
Je pense que sous Oracle, ton 5ème champ correspondant à la date n'est pas compatible avec la Date de java.util.date ... faut regarder dans le forum ceux qui ont traité les dates oracle avec java.util.date ou java.sql.date ...sql.SQLException: ORA-03115: type de réseau ou représentation non pris en compte
Moi, j'ai un peu le même pb mais je suis sous MySql.
A=
Meuuh en AI à l'INRA
Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Pour un champ DATETIME, il faudrait utiliser Timestamp côté JDBC.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 pstat.setTimestamp(5, new Timestamp(System.currentTimeMillis()));
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager