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