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 :

PreparedStatement et les valeurs null


Sujet :

JDBC Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 10
    Par défaut PreparedStatement et les valeurs null
    Bonjour,
    J'utilise des PreparedStatement pour mon insertion. Lorsque j'insère les données dans la BDD, je teste si certaines valeurs sont vides. S'il est vide je ne soueterai pas l'insérer.(Mes champs BDD sont a NULL).
    Actuellement mon code marche pas il me dis qu'il manque des paramètre (normal). Je voudrai savoir comment faire rien insérer dans les champs JobNumber ou ClientName s'il sont vide ?
    Je peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else 
    prepastmt.setString(7, null);
    car dans la BDD il le prend comme un string.
    Donc pour résumer comment envoyer des champs null avec les PreparedStatement ?

    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
    String insert = "insert into taxi_request(fkEmployeeId,fkReservedForId,dateOfDeparture,timeDeparture," +
    						"descrip,jobNumber,clientName,sysDateCre,status) values(?,?,?,?,?,?,?,NOW(),?)";
    		PreparedStatement prepastmt =null;
    		int fkRequestId = 0;
    		try{
    			java.sql.Connection conn = MySql.getConnection(MySql.DB_FIAD);
    			prepastmt = conn.prepareStatement(insert);
    			prepastmt.setInt(1, req.getFkEmployeeId());
    			prepastmt.setInt(2, req.getFkReservedForId());
    			prepastmt.setDate(3, req.getDateOfDeparture());
    			prepastmt.setString(4, req.getTimeDeparture());
    			prepastmt.setString(5, req.getDescrip());
    			if(!SQL.isEmptyString(req.getJobNumber()))
    				prepastmt.setString(6, req.getJobNumber());
     
    			if(!SQL.isEmptyString(req.getClientName()))
    				prepastmt.setString(7, req.getClientName());
     
     
    			prepastmt.setInt(8, req.getstatus());
     
    			prepastmt.executeUpdate();
    			ResultSet keys = prepastmt.getGeneratedKeys();
    			if(keys.next()){
    				fkRequestId = keys.getInt(1);
    			}
    			prepastmt.close();
    			MySql.closeConnection(conn);
    		} 
    		catch(java.sql.SQLException e) {
    			System.out.println("Problème à l'exécution de la requête : insertion Taxi"); 
    			e.printStackTrace();
    		}

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Donky Voir le message
    Je peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    else 
    prepastmt.setString(7, null);
    car dans la BDD il le prend comme un string.
    Tiens j'aurais pensé que cela marcherait...
    La doc ne précise malheureusement rien pour ce cas précis, et j'ai peur que le résultat dépende du driver JDBC...

    Toutefois tu peux toujours utiliser setNull() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prepastmt.setNull(7, java.sql.Types.VARCHAR);
    a++

Discussions similaires

  1. J’ai un souci avec les valeurs null sous sql server.
    Par zoltix dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/06/2006, 10h27
  2. Les jointures... et les valeurs nulles !
    Par PJ_56 dans le forum SQL
    Réponses: 2
    Dernier message: 25/04/2006, 23h33
  3. [Excel] Ne pas tracer les valeurs nulles d'un graphe
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/02/2006, 19h00
  4. order by sans les valeurs NULL
    Par pendragon509 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/10/2005, 12h31
  5. Comment gérer les valeur Nulles dans une requête ?
    Par sondo dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2005, 11h02

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