Java exception et champs NULL DB
Résolu
fxtaa
Messages postés
1050
Date d'inscription
Statut
Membre
Dernière intervention
-
choubaka Messages postés 39442 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 39442 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Comment faire pour éviter : java.lang.NullPointerException lors de l'affichage d'un table sql possédant des champs Null ?
Cdt
Comment faire pour éviter : java.lang.NullPointerException lors de l'affichage d'un table sql possédant des champs Null ?
Cdt
A voir également:
- Java exception et champs NULL DB
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
6 réponses
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
Salut
Difficile à dire comme ça...
Difficile à dire comme ça...
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!
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---------------------------------"); }
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) ?????
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 :(
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 |");
}