mmanas
Messages postés13Date d'inscriptionjeudi 14 août 2008StatutMembreDernière intervention15 septembre 2010
-
14 août 2008 à 14:26
mounis2400
Messages postés8Date d'inscriptionjeudi 28 août 2008StatutMembreDernière intervention30 août 2008
-
29 août 2008 à 16:39
bonjour je suis un debutant ,
j'essaye de tester une methode d'une classe java qui execute une requete sql pour cela je passe des donnée de teste en argument de cette methode . le probleme c'est que la valeur null pour une variable string n'est pas accepté mais considere comme String et alors n'est pas accepter parce qu'il depasse le nbr de caractere defini pour cette valeur.
ma question est comment on passe une variable avec une valeur null?
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 200822 14 août 2008 à 15:44
Salut
cela semble normal, puisque tu mets manuellement des quotes entre les variables. Du coup, si ta valeur est null, tu auras une chaine de caractères.
Pour ce faire, il faudrait peut-être passer par une condition ternaire à chauqe variable suceptiable d'être null, du genre:
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 16 août 2008 à 00:11
Pourquoi ne te créé tu pas une classe Produit .
tu pourrais passer directement ton objet produit dans ta fonction ( ca ferait , à mon avis , plus propre que toutes tes chaines )
et dans ta fonction tu pourrais tester plus facilement si c'est null ou pas , vu que tu le creer plus haut
public void insertProduit ( p Produit )
{
...
et après tu reprends le système décrit par [auteur/INDIANAJULES/242730.aspx indiana_jules]
mmanas
Messages postés13Date d'inscriptionjeudi 14 août 2008StatutMembreDernière intervention15 septembre 2010 18 août 2008 à 11:20
bonjour, merci pour vos réponses, mais comme je vous ai expliqué, je suis débutant et je n'ai pas compris vos propositions, merci de reformuler et si possible en reprenant mon code.
cordialement.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 18 août 2008 à 11:59
Est ce que tu connais au moins la POO ?
Sinon avant toute chose , essaye de comprendre au moins la base ...
Dans ta BDD , tu as une Table Produit surement , non ?
Eh ben tu te cree une classe en Java reprenant les memes infos que ta Table produit
ex :
dans la BDD , un produit est identifié par un ID(clé primaire ) et est caractérisé par un nom et un poids (c'est un exemple)
public class Produit
{
private int ID; // clé primaire , à utiliser seulement si tu n'utilise pas la auto-increment dans ta BDD
private String nom;
private int poids;
public Produit (int ID,String nom , int poids )
{
this.ID = ID;
this.nom = nom;
this.poids = poids;
}
// et ici tu te fais tes gettors / settors
//j'en mets que 1 je suis fainéant
public void setNom ( String nom)
{
this.nom = nom;
}
public String getNom()
{
return this.nom;
}
}
Maintenat que tu a ta classe produit tu peux faire Un truc comme
controller.addProduit ( model.Produit p) ;
Ainsi tu crée ton produit dans ta vue (ComboBox , TextField ... ) tu l'envoi au controller et apres le model traite tt cas pour l'inserer dans ta Table .
Et avant de l'inserer dans ta Table tu peux faire un truc du genre :
public boolean addProduit ( model.Produit p )
{
String maRequeteSQL ="insert into Produit("+p.getNom+ ... ")" ;
//Et ici si tu a cree ton object Produit et que tu a mis null dans ton nom , et ben ca mettra bien null dans ta BDD ...
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
mounis2400
Messages postés8Date d'inscriptionjeudi 28 août 2008StatutMembreDernière intervention30 août 2008 29 août 2008 à 16:39
c est une méthode qui robuste est efficace d'ailler c est la logique que utilise hibernate
n ayont moin il y a plus simple c est d 'utiliser les preparedStatement et voici un exemple :
String queryString = "insert into TOTO( TITI , TATA ) values( ? ,?)";
PreparedStatement preparedStatement = cx.prepareStatement(queryString);
preparedStatement.setObject(1, val1);
preparedStatement.setObject(2, val2);
preparedStatement.executeUpdate();
je suis là pour aider et faire connaissance avec les meilleurs.