IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

exemple de code source pour insérer une date


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut exemple de code source pour insérer une date
    Salut
    j'ai besoin d'un exemple de code source pour l'insertion d'une date dans une base de données (oracle ou mysql peut importe ) en utilisant le jsf
    j'ai beaucoup essayé mais je n'ai pas réussie à insérer une date dans BDD
    si vous avez un code qui marche pourriez vous me le posté s'il vous plait
    car je n'ai besoin
    je vous remercie

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Utilises tu un framework de persistence? (JPA/hibernate etc...)
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    JSF est un framework de présentation. Il n'a donc rien à voir avec la couche de persistance...

    Au niveau d'un bean, il suffit d'avoir une propriété de type java.util.Date, et si tu utilises un ORM (type Hibernate, ou autre), il suffit d'avoir une propriété de ce type là dans ton entité.

    Montre nous plutôt tes essais, et là où tu as des problèmes...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    Comme cela a été dit précédemment, au plus JSF permettra d'intégrer des contrôles d'intégrité de la donnée saisie (format notamment), mais pas de gérer l'insertion en base.

    Lors de l'insertion, arrives tu à récupérer la donnée saisie? Et à quel format? D'une base à une autre, selon le type (Oracle, PostGres...), le format du champ (date, smalldatetime...), ainsi que le format réel (jj/mm/aaaa ou mm/jj/aaaa à l'anglaise) la donnée sera à remettre en forme avant d'insérer.

    Passes tu par des couches type hibernate, ou fais tu un INSERT direct via Jdbc?

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Salut

    voici mon bean
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
     
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    import java.sql.*;
    import java.sql.SQLException;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
     
    import oracle.jdbc.driver.*;
    import java.util.logging.Level;
    import java.util.logging.Logger;
     
    /**
     *
     * @author utilisateur
     */
    public class Dateas {
    Connection  con ;
    java.sql.Date dateas;
        private PreparedStatement preparedStatement;
     
     public void setsqlDate( java.sql.Date  dateas){
    	    this.dateas= dateas;
    	  }
     
    	public  java.sql.Date getdateas()
    	{
    	    return dateas;
    	}
     
     
            public String connexionBD() throws SQLException {
        String result=null;
     
         try
    			    {
                         Class.forName("oracle.jdbc.driver.OracleDriver");
        			     System.out.println ("driver etablie");
    			    }
    			    catch(Exception e)
    			    {
    			    	System.out.println ("erreur:Driver int" +
    			    			"rouvable");
    			    }
     
     
     
     
            try
     
    			    {
    			        String URL = "jdbc:oracle:thin:@localhost:1521:gmao";
    			    	String USER = "pfe";
    			    	String PASSWD = "gmao";
     
    			    	  con =DriverManager.getConnection(URL,USER, PASSWD);
    			    	System.out.println ("connexion  base pfe etablie");
    			    }
    			    catch(Exception e)
                                        {
    System.out.println ("erreur: base introuvable");
     
    			    }
     
     
    Statement st = con.createStatement();
     
     
     
     
    int val = 0;
     
                try {
                   preparedStatement  = con.prepareStatement("insert into datetable(daterecep) values(?))");
                                  preparedStatement.setDate(1, new java.sql.Date(dateas.getTime()));
                                    preparedStatement.executeUpdate();
                } catch (SQLException ex) {
                    Logger.getLogger(Dateasma.class.getName()).log(Level.SEVERE, null, ex);
                }
     
    System.out.println(val);
    return result;
    }
     
     
     
     
        /** Creates a new instance of Dateasma */
        public Dateasma() {
        }
     
    }
    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
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <h:form id="datetime1">
            date
               <h:inputText  value="#{Dateas.dateas}" size="10" />
                <h:commandButton  id="submit" value="Confirmer "  style="width: 175px" action="#{Dateas.connexionBD}" ></h:commandButton>
            </h:form>
        </body>
    </html>
    </f:view>
    j'ai beaucoup essayé mais je n'arrive pas du tout à insérer une date dans mon BDD oracle je ne sait pas ou est le problème, j'ai formater ma date en format("dd/mm/yyyy") et c'est la meme chose
    aidez moi s'il vous plait
    je vous remercie

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'obtiens quoi, une exception, une valeur incorrect? Des détails s'il te plait.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    non rien ne s'affiche mais quand je consulte ma base je ne trouve pas ce que j'ai introduis

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <h:inputText  value="#{Dateas.dateas}" size="10" />
    dateas dans votre Bean doit être un String pour pouvoir y lier un inputText, pas un java.sql.Date. Après, à vous dans votre action de faire la conversion.

    Ou alors vous devez ajouter explicitement un Converter pour faire le travail.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <h:inputText  value="#{Dateas.dateas}">
    <f:convertDateTime type="date" pattern="dd/MM/yyyy"/>
    </h:inputText>
    Et utiliser le type java.util.Date

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    je ne sais pas si j'ai bien compris mais est ce que je déclare dateas dans mon bean


    ensuite je fais la conversion

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    je ne sais pas si j'ai bien compris mais est-ce que je déclare dateas dans mon bean comme ça?

    ensuite je fais la conversion
    donne moi plus d'explication s'il vous plait

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Soit vous le mettez en String dans votre bean et vous faites vous meme la conversion avec DateFormat, soit vous utilisez java.util.Date dans votre bean, et alors il faut mettre un converter dans votre page JSF comme indiqué.

  12. #12
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Salut
    j'ai fait les modifications sur le code
    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
     
    java.util.Date date;
        String d;
    String s=null;
    DateFormat dformat = new SimpleDateFormat("dd/MM/yyyy");
     
     public void sets( String  s){
    	    this.s= s;
    	  }
     
    	public  String gets()
    	{
    	    return s;
    	}
    ensuite j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     try{
     
    s = dformat.format(date);
     
    }
    catch(Exception e){
    e.getMessage();
    }
    en niveau de la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    val = st.executeUpdate("insert into datetable(daterecep) values('"+s+"'))");
    dans ma page jsf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:inputText id="mdf5" value="#{Dateas.s}" size="10" />
    mais ça ne marche toujours pas j'ai vraiment essayé mais sans espoir
    pourriez vous m'aider s'il vous plait
    je vous remercie

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Le code devrais plutot être dans ce gout là:
    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
    java.util.Date date;
    String s=null;
    DateFormat dformat = new SimpleDateFormat("dd/MM/yyyy");
     
     public void setS( String  s){
    	    this.s= s;
                try{
                   this.date  = dformat.parse(s);
                } catch (ParseException e){
                   //TODO
                }
    	  }
     
    	public  String getS()
    	{
    	    return s;
    	}
    //.....
    PreparedStatement stmt = connexion.prepareStatement("insert into datetable(daterecep) values(?)");
    stmt.setDate(1,new java.sql.Date(this.date.getTime()));
    stmt.executeUpdate();
    A savoir on parse ce que l'utilisateur envoie, les getters/setters ça prend toujours une majuscule (que vous aviez oubliée sur gets()/sets()) et pour une requête sql, toujours utiliser java.sql.Date, car si vous passez une String vous ne pouvez pas prévoir comment la DB la digérera.

  14. #14
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Salut
    Oui ça marche maintenant j'arrive enfin à insérer une date un grand merci à tchize
    you are a genius

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour insérer Une date
    Par hassane03 dans le forum Développement
    Réponses: 8
    Dernier message: 25/01/2013, 14h48
  2. Réponses: 8
    Dernier message: 11/02/2008, 19h37
  3. Comment fait-on pour insérer une date dans un champs DateTime
    Par gibea00 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/01/2007, 01h04
  4. Réponses: 8
    Dernier message: 12/06/2006, 22h40
  5. Code source pour appliquer une DCT
    Par lemenyau dans le forum C
    Réponses: 14
    Dernier message: 31/05/2006, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo