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

JDBC Java Discussion :

Les bases de bonnées en Java


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Les bases de bonnées en Java
    Bonsoir,

    Je suis entrain de développer une application J2E, la première partie est gérer les utilisateurs, et pour créer un utilisateur j'utilise la requête "CREATE USER ? IDENTIFIED BY ?", mais je ne trouve aucun nouveau utilisateur,{les autres requêtes fonctionnent très bien}

    Merci d'avance

  2. #2
    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
    Quelle message d'erreur tu obtiens, quel code tu utilise, quelle base de données, est-ce que l'account que tu utilise pour exécuter cette requête a les droit administrateur sur le serveur?

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    merci monsieur tchize_

    j'utilise pour la BD oracle, et je suis connecté avec un user qui a tous les privilèges, j'ai crée un user directement(mode console) et il a marché, donc le problème il est au niveau de java.
    pour l'erreur, il n'affiche rien, et il exécute les instructions qui sont après.
    et voilà 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
    31
    32
    33
    34
    public void ajouterUser(Utilisateur u) {
    		// TODO Auto-generated method stub
     
    		PreparedStatement stat=null;
    		PreparedStatement stat2=null;
    		Connection c=null;
     
     
     
    		try{
    			c=this.connexion.getConnexion();
    			stat=c.prepareStatement("CREATE USER ? IDENTIFIED BY ? ACCOUNT UNLOCK",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
     
    			stat2=c.prepareStatement("insert into USERTB (NOMUSER,MOTDEPASSEUSER) values (?,?)");
     
    			stat.setString(1, u.getNom());
    			stat.setString(2, u.getMotPasse());
    	        stat.executeUpdate();
     
     
    			stat2.setString(1, u.getNom());
    			stat2.setString(2, u.getMotPasse());
    			stat2.executeUpdate();
     
     
     
    		}catch(SQLException e){
     
    		} catch (DaoException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    	}

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    le programme termine sans aucune erreur, mais je ne trouve rien au niveau de la bd, et quand j’enlève cette ligne
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    stat=c.prepareStatement("CREATE USER ? IDENTIFIED BY ? ACCOUNT UNLOCK",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

    le programme exécute bien la requête, et je trouve une ligne en plus dans la table

  5. #5
    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
    Citation Envoyé par zakips Voir le message
    le programme termine sons aucune erreur,
    Peut être parce que tu ignore les erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    }catch(SQLException e){
     
    		}
    Il faut traiter tes erreurs, pas faire comme si elles n'existaient pas.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    donc voilà l'erreur

    java.sql.SQLSyntaxErrorException: ORA-01935: nom de rôle ou d'utilisateur absent

  7. #7
    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
    vérifie ton u.getNom, je parie qu'il est null.

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    non, ne sont pas null (j'ai vérifie le nom et le mot de passe)
    -la deuxième requête a fonctionné donc forcement le nom et le mot de passe ne sont pas null

  9. #9
    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
    au vu de ce message :

    https://community.oracle.com/thread/1326678

    tu va devoir passer par de la concatenation, on dirait que le user dans cette commande, c'est comme une table, ce n'est pas un string, et ça ne passe pas on dirait avec les preparedstatement

    Essaie ça, mais du coup va falloir blinder les paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stat=c.prepareStatement("CREATE USER "+u.getNom()+" IDENTIFIED BY "+u.getPassword()+" ACCOUNT UNLOCK",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    j'ai essayé le code mais il a jeté une exception java.sql.SQLSyntaxErrorException: ORA-00901: commande CREATE non valide

    (j'ai pas compris -va falloir blinder les paramètres.-)

  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
    éviter que quelqu'un s'enregistre avec comme nom "; drop database"

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    ok monsieur j'ai compris...

    mais toujours pas des résultats....je ne sais pas si je suis le premier a poser cette question ou non...hhhhh

    dans tous les cas merci beaucoup monsieur tchize_

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/03/2010, 10h35
  2. Réponses: 9
    Dernier message: 31/05/2009, 03h59
  3. Réponses: 0
    Dernier message: 11/02/2008, 09h54
  4. Java et les Bases de données
    Par Clorish dans le forum JDBC
    Réponses: 6
    Dernier message: 09/10/2007, 21h24
  5. Réponses: 13
    Dernier message: 25/01/2007, 17h20

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