Bonjour

J'essaie de passer les valeurs de mes ? dans le code suivant :

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
 
		// Put the info in the database and then send a mail for confirmation
		try {
			Context context = new InitialContext();
			DataSource ds = (DataSource) context
					.lookup("java:comp/env/jdbc/maDataSource");
			Connection conn = ds.getConnection();
			try {
				conn.setAutoCommit(false);
				PreparedStatement st = conn
						.prepareStatement("insert into utilisateurs values ('?','ZedroS','password','zedros@zedros.com')");
 
				try {
					st.setString(1, "test");
					st.executeUpdate();}
				finally {
					st.close();
				}
				conn.commit();
			} catch (Exception e) {
				conn.rollback();
				throw e;
			} finally {
				conn.close();
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
J'ai ensuite l'erreur suivante :
java.lang.RuntimeException
org.postgresql.util.PSQLException: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0.
Ma requete passe bien quand je mets mes valeurs en dur. D'après ce que je vois sur la javadoc et mon exemple, je suis dans le vrai...

Au final, je ne comprends franchement pas mon erreur, vous avez des pistes ?

Pour info, j'utilise postgresql.

Merci d'avance
ZedroS