Java et sql

Résolu
cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008 - 4 avril 2007 à 00:21
cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008 - 4 avril 2007 à 19:30
salut les gars, bon j'ai de l'experience sur php-mysql, mais la a java+mysql je plante
voici le topo,la connection et tout le reste ,ca passe ,je m'en suis en sorti
voici ou ca coince:

dans mysql : j'ai une table comme ce ci : User (id,non,password) , avec id comme primary key et auto_increment .
dans java :  j'ai une frame avec 1 JTextfield (name) et un JPasswordfield ,password) et un button

le but et d'inserer name.getText et password.getText apres l'appui du boutton dans la base de donnees mysql
voici le bout de code qui plante :

            Class.forName("com.mysql.jdbc.Driver");
            Connection cnx = DriverManager.getConnection("jdbc:mysql://localhost:3306/univ","root","root");
            Statement sqlquery = cnx.createStatement();
            sqlquery.executeUpdate("INSERT INTO user VALUES ('',name.getText(),password.getText)");
            cnx.close();

j'ai trois soucis :
1- warning : password.getText est vieux (ca s'est pas tros grave, mais passe moi le nouveau code)
2- j'ai un message : FUNCTION name.getText does not exist la je sais pas quoi faire
3- en changeant : sqlquery.executeUpdate("INSERT INTO user VALUES ('',name.getText(),password.getText)"); parsqlquery.executeUpdate("INSERT INTO user VALUES ('','didier','allo')"); ,meme comme ca le code ne marche pas,alors que sur php ca passe sans pb, l'erreur dit :Out of range value adjusted for column 'id' at row 1 ,je ne comprends pas pourquoi,j'ai pourtant mis dans mysql id : auto_increment

bref, Aidez moi!!merci
ouais man

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 avril 2007 à 06:55
le java, ce n'est pas le php (en tant mieux !!!) : tu n'a pas le "$" magique du php qui fait remplacer les variables par leur contenu dans une string (heureusement, car c'est la source d'énormes failles de sécurités en php !).

Donc ca donnerai :
1) password.getPassword()
2) sqlquery.executeUpdate("INSERT INTO user (nom, password) VALUES (" + name.getText()  + ", " + password.getPassword() + ")");

ton id sera généré automatiquement, donc pas besoin de le renseigner dans ta requête.
3
cs_noumian Messages postés 49 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 3 décembre 2008
4 avril 2007 à 19:30
merci, ca va, mais ca n'a pas marche tout de suite,il y avait une petite rectification a faire
la voici: il fallait ajouter les apostrophes.
sqlquery.executeUpdate("INSERT INTO user (nom, password) VALUES (' " + name.getText()  + " ','  " + password.getPassword() + " ')");

ouais man
0
Rejoignez-nous