J'utilise simpleJDBCTemplate pour insérer une valeur dans une base de données postgre.simpleJDBCTemplate ne remplace pas le paramètre quoted
String sql "insert into testTable values(:bla, :blah, functionThatTakesAText(':blu'))"
BeanPropertySqlParameterSource namedParameters = new BeanPropertySqlParameterSource(lighting);
simpleJdbcTemplate.update(sql, namedParameters);
Maintenant, le paramètre blu est en fait un certain nombre (sql réelle prend 2 réelle de) qui est lu à partir d'un fichier donné par le client.
En conséquence, la base de données reçoit quelque chose comme ce qui suit:
insert into testTable values(?, ?, functionThatTakesAText(':blu'))
et ne parvient pas à remplacer le: paramètre blu comme prévu.
La solution de contournement que j'utilise actuellement consiste à remplacer le paramètre blu par sa valeur à l'aide d'une expression régulière, mais je ne suis pas sûr de sa sécurité.
Comment pourriez-vous résoudre ce problème?
"voir la méthode skipCommentsAndQuotes() de NamedParameterUtils" Je ne peux pas le trouver dans la documentation * * - http://static.springsource.org/spring/docs/2.5.x/api/org/springframework /jdbc/core/namedparam/NamedParameterUtils.html –
@awregan: Ce n'est pas dans la documentation, c'est dans le code source. – skaffman