Java exception et champs NULL DB
Résolu/Fermé
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
-
7 sept. 2010 à 11:29
choubaka Messages postés 39152 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 17 mars 2023 - 7 sept. 2010 à 19:45
choubaka Messages postés 39152 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 17 mars 2023 - 7 sept. 2010 à 19:45
A voir également:
- Java exception et champs NULL DB
- Bp bc db ✓ - Forum Loisirs / Divertissements
- A java exception has occurred ✓ - Forum minecraft
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
- Java apk - Télécharger - Langages
6 réponses
choubaka
Messages postés
39152
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 mars 2023
2 099
7 sept. 2010 à 13:22
7 sept. 2010 à 13:22
Dans ResulSetMetaData, il existe ceci
isNullable
int isNullable(int column)
throws SQLExceptionIndicates the nullability of values in the designated column.
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the nullability status of the given column; one of columnNoNulls, columnNullable or columnNullableUnknown
Throws:
SQLException - if a database access error occurs
Tu peux peut-être faire le test la dessus
isNullable
int isNullable(int column)
throws SQLExceptionIndicates the nullability of values in the designated column.
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the nullability status of the given column; one of columnNoNulls, columnNullable or columnNullableUnknown
Throws:
SQLException - if a database access error occurs
Tu peux peut-être faire le test la dessus
choubaka
Messages postés
39152
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 mars 2023
2 099
7 sept. 2010 à 11:32
7 sept. 2010 à 11:32
Salut
Difficile à dire comme ça...
Difficile à dire comme ça...
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
73
7 sept. 2010 à 11:44
7 sept. 2010 à 11:44
Le code java d'exécution et d'affichage d'une requête sql :
La table BOB :
possède des champs genre "id" "name" "url" et parfois la donnée de "url" est à "null". Et la paf ca fait des choca... exceptions!
//-----Requete sql-----
//Création d'un objet Statement
Statement state = conn.createStatement();
//L'objet ResultSet contient le résultat de la requête SQL
ResultSet result = state.executeQuery("SELECT * FROM bob");
//On récupère les MetaData
ResultSetMetaData resultMeta = result.getMetaData();
System.out.println("\n**********************************");
//On affiche le nom des colonnes
for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print("\t" + resultMeta.getColumnName(i).toUpperCase() + "\t *");
System.out.println("\n**********************************");
while(result.next()){
for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print("\t" + result.getObject(i).toString() + "\t |");
System.out.println("\n---------------------------------");
}
result.close();
state.close();
La table BOB :
possède des champs genre "id" "name" "url" et parfois la donnée de "url" est à "null". Et la paf ca fait des choca... exceptions!
choubaka
Messages postés
39152
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 mars 2023
2 099
7 sept. 2010 à 11:48
7 sept. 2010 à 11:48
tu peux inclure dans ta boucle une condition avant de traiter ton résultat ?
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
73
7 sept. 2010 à 13:04
7 sept. 2010 à 13:04
C'est fait en dessous, mais je ne vois pas comment mettre une condition sur un résultat avant de le "traiter"...
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
73
Modifié par fxtaa le 7/09/2010 à 12:03
Modifié par fxtaa le 7/09/2010 à 12:03
J'ai testé ca mais ca ne marche toujours pas :
while(result.next()){
for(int i = 1; i <= resultMeta.getColumnCount(); i++){
if (result.getObject(i).toString()== "null"){ // " " "" "NULL"
System.out.println("\t NULL \t |");
}
else{
System.out.print("\t" + result.getObject(i).toString() + "\t |");
}
}
System.out.println("\n---------------------------------");
}
choubaka
Messages postés
39152
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 mars 2023
2 099
7 sept. 2010 à 13:25
7 sept. 2010 à 13:25
une petite question ...
je vois que tu fais ceci
result.getObject(i)
Cette méthode te renvoie un objet...
tu a essayé de faire
result.getString(i) ?????
je vois que tu fais ceci
result.getObject(i)
Cette méthode te renvoie un objet...
tu a essayé de faire
result.getString(i) ?????
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
73
7 sept. 2010 à 13:36
7 sept. 2010 à 13:36
Ca provient d'un tuto du site du zero, d'apres ce que j'ai compris, ca permet d'éviter les problèmes de typages. (Je vais essayer le isnullable)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
73
Modifié par fxtaa le 7/09/2010 à 13:46
Modifié par fxtaa le 7/09/2010 à 13:46
Je ne vois pas comment utiliser isnullable.............
je fais un
Mais bien entendu ca ne fonctionne pas :(
je fais un
if (ResultSetMetaData isnullable){
System.out.println("\t NULL \t |");
}
else{
System.out.print("\t" + result.getObject(i).toString() + "\t |");
}
Mais bien entendu ca ne fonctionne pas :(
choubaka
Messages postés
39152
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 mars 2023
2 099
7 sept. 2010 à 14:01
7 sept. 2010 à 14:01
tu ne sais pas faire un test sur isNullable, celà te renvoie un "int" qui te donne un des trois valeurs statiques( columnNoNulls, columnNullable or columnNullableUnknown)
...
De plus, tu dois indiquer le numéro de la colonne.
Donc
if (resultMeta.isNullable(i) == ResultMetaData.columnNullable){
System.out.println("\t NULL \t |");
}
else{
System.out.print("\t" + result.getObject(i).toString() + "\t |");
}
...
De plus, tu dois indiquer le numéro de la colonne.
Donc
if (resultMeta.isNullable(i) == ResultMetaData.columnNullable){
System.out.println("\t NULL \t |");
}
else{
System.out.print("\t" + result.getObject(i).toString() + "\t |");
}
arth
Messages postés
9373
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 366
7 sept. 2010 à 14:16
7 sept. 2010 à 14:16
Il faut lire les Javadoc de temps en temps ;-)
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
73
7 sept. 2010 à 16:23
7 sept. 2010 à 16:23
Merci ca fonctionne.
choubaka
Messages postés
39152
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
17 mars 2023
2 099
7 sept. 2010 à 19:45
7 sept. 2010 à 19:45
cool