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:
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:
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();
} |