Se connecter / S'enregistrer

Résolu Insérer une date dans BD oracle à partir de jsf

Solutions (5)
Tags :
  • Oracle
  • Java
  • Template
  • Sql
  • Programmation
|
Salut

j'ai un soucie je veux insérer une date à partir d'une page jsf mais ça ne marche pas aucun message d'erreur qui s'affiche mais quand je consulte ma table dans BD oracle je ne trouve pas mes données que j'ai introduit à partir de la page jsf
voici mon bean:

  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5.  
  6. import javax.faces.bean.ManagedBean;
  7. import javax.faces.bean.SessionScoped;
  8. import java.sql.*;
  9. import java.sql.SQLException;
  10.  
  11. import java.util.logging.Level;
  12. import java.util.logging.Logger;
  13. import java.sql.DriverManager;
  14.  
  15. /**
  16. *
  17. * @author utilisateur
  18. */
  19. @ManagedBean(name="Insertdate")
  20. @SessionScoped
  21. public class Insertdate {
  22.  
  23. private int dateid;
  24. Connection con ;
  25. java.util.Date daterecep;
  26.  
  27.  
  28. public void setdateid(int dateid){
  29. this.dateid=dateid;
  30. }
  31.  
  32. public void setdaterecep( java.util.Date daterecep){
  33. this.daterecep=daterecep;
  34. }
  35.  
  36. public int getdateid()
  37. {
  38. return dateid;
  39. }
  40.  
  41.  
  42. public java.util.Date getdaterecep()
  43. {
  44. return daterecep;
  45. }
  46. public String connexionBD() throws SQLException {
  47. try
  48. {
  49. Class.forName("oracle.jdbc.driver.OracleDriver");
  50. System.out.println ("driver etablie");
  51. }
  52. catch(Exception e)
  53. {
  54. System.out.println ("erreur:Driver int" +
  55. "rouvable");
  56. }
  57.  
  58.  
  59. //connexion à la base
  60. try
  61.  
  62. {
  63. String URL = "jdbc:oracle:thin:@***:1521:***";
  64. String USER = "***";
  65. String PASSWD = "***";
  66.  
  67. con =DriverManager.getConnection(URL,USER, PASSWD);
  68. System.out.println ("connexion base pfe etablie");
  69. }
  70. catch(Exception e)
  71.  
  72. {
  73. System.out.println ("erreur: base introuvable");
  74.  
  75. }
  76. ///////
  77.  
  78.  
  79.  
  80. Statement st = (Statement) con.createStatement();
  81.  
  82.  
  83.  
  84.  
  85. int val=0;
  86. try {
  87. val = st.executeUpdate("insert into tabdate values("+dateid+",'"+daterecep+"')");
  88. } catch (SQLException ex) {
  89. Logger.getLogger(Insertdate.class.getName()).log(Level.SEVERE, null, ex);
  90. }
  91.  
  92. System.out.println(val);
  93. return resultat;
  94. }
  95.  
  96.  
  97.  
  98. /** Creates a new instance of Insertdate */
  99. public Insertdate() {
  100. }
  101.  
  102. }


mon probléme réside au niveau du 'date' car j'ai utilisé ce code pour insérer les 'int' et 'String' et ça marché (bien entendu, dans ma BD mes dates sont de type date et non pas string, et dans mon code java j'ai utilisé le java.util.Date)
qu'est ce que je doit ajouter pour que je puisse insérer des dates
pourriez vous m'aider s'il vous plait
je vous remercie
Contenus similaires
Meilleure solution
partage
, Programmation (collector) |
salut, édite ton code pour cacher les login et mdp de connections a la bdd ...

ensuite , formate ta date avec la fonction TO_DATE() !

http://www.techonthenet.com/oracle/functions/to_date.ph...
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par sabar-chan.
  • Commenter cette réponse |
Score
0
òh
òi
|
Et utilise java.sql.Date au lieu de java.util.Date
  • Commenter cette réponse |
Score
0
òh
òi
|
C'est pourri.
D'abord, comme le dit si bien Andrelec1, il faut formater explicitement en format date, sinon tu restes dépendant de l'OS, et pire, de la config du poste de l'utilisateur.

Ensuite, il faut, dans les règles de l'art, donner une liste de colonnes dans ton insert :
pas de insert into maTable VALUES ( ...
mais
insert into maTable (colonne1, colonne2 ...) values (...
Sinon, en cas de changement de structure de la table, tu es mort.

Ensuite, je ne comprends pas :
("insert into tabdate values("+dateid+",'"+daterecep+"')"
Pourquoi ces plus ? Et pourquoi ces guillemets ?

De toutes façons, il est préférable d'utiliser des procédures stockées au lieu du SQL embeded.
  • Commenter cette réponse |
Score
0
òh
òi
|
C'est peut être du bricolage mais je stock toujours ce genre de données sous format date ET sous format string, Je mets une condition, quand le format date ne marche pas, j'utilise string.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS