J'ai un problème qui passe une valeur nulle à NamedParameterjdbctemplate à l'aide de MapSQLParameTersource de la structure de printemps. Tout le monde sait comment faire cela?
Actuellement, mon code est le suivant: P>
String sql = "update person set project = :project where id = :id;"; MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("project ", null); params.addValue("id ", 1); int count = newNamedParameterJDBCTemplate().update(sql, params);
6 Réponses :
dans pure jdbc c'est préparé stitaité.setnull (int, java.sql.types.null); peut être cela aide. P > p>
De MapsqlParameTersource API, il y a
Ceci est mon code sur le printemps 3.1 fonctionne bien.
Peut-être qu'une trace de pile pourrait aider? P> p>
Assurez-vous que si DataSource est défini pour votre plaque JDBCTTEM comme ci-dessous. NamedParameterjdbCtemplate = Nouveau NamedParameterjdbCtemplate (DataSource); strong> P>
Il y a un espace supplémentaire après le nom du paramètre:
Je pense que Semicolon est extra dans le code ci-dessous:
String sql = "update person set project = :project where id = :id";
String sql = "update person set project = :project where id = :id;"; // ISSUE: Map.of doesn't support null values, but HashMap does: Map<String, Object> params = new HashMap<>(); params.put("project", null); params.put("id", 1); int count = newNamedParameterJDBCTemplate().update(sql, params);
Êtes-vous défini le
DataSource CODE> pour
NamedParameterJDBCTELPLET CODE> qui revenant à partir de
NEWNYDPARAMETJDBCLETPLET () CODE>?
XSNRG, pouvez-vous partager quel était le problème? La réponse par Titi est la même que celle de votre code.