Hej,
Du wirst wahrscheinlich gebeten, anstatt der Methode
JDBCTemplate.query( String sql, Object[] args, RowMapper rowMapper )
, die Methode[link:http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html#query(java.lang.String,%20org.springframework.jdbc.core.PreparedStatementSetter,%20org.springframework.jdbc.core.RowMapper)@title=JDBCTemplate.query( String sql, PreparedStatementSetter psm, RowMapper rowMapper );]
zu verwenden. DemPreparedStatementSetter
musst du einjava.sql.PreparedStatement
übergeben, welches die Methode[link:http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html#setObject(int,%20java.lang.Object)@title=setObject( int ParameterIndex, Object x)]
kennt.Ich verstehe nicht, wie ich es verwenden soll. Ich habe keine Connection, mit der ich das Statement vorbereiten kann, da das Connection Handling Spring übernimmt.
Ich hatte auch einen Denkfehler drin: PreparedStatementSetter ist ein Interface, welches du selber, z.B. anonym überschreiben musst. Das PreparedStatement bekommst du durch die Implementierung der Methode [link:http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/PreparedStatementSetter.html#setValues(java.sql.PreparedStatement)@title=PreparedStatementSetter.setValues( PreparedStatement ps )]
übergeben und musst entsprechend nur noch die Werte setzen, also z.B. durch
new PreparedStatmentSetter() {
void setValues( PreparedStatement ps ) {
ps.setObject( 0, kategorie );
}
};
Oder so ähnlich. Wie gesagt ich kenn mich mit Spring nich aus. Aber dadurch würdest du zumindest den Aufruf der query( String sql, Object[] args, RowMapper rowMapper ) Methode umgehen können, die dir offensichtlich Probleme bereitet.
Beste Grüße
Biesterfeld
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz