Ich versuche, einen Datensatz in eine Tabelle einzufügen, und ich erhalte den folgenden Fehler: Ich habe auch versucht, "?" für die Parameter in der SQL-Anweisung und bekam den gleichen Fehler.
Fehler
%Vor%JdbcOfficersDAO
%Vor%Officers.java
/ ** * * /
%Vor%Aktualisiertes Fehlerprotokoll
%Vor% Verwenden Sie JdbcTemplate
(anstelle von SimpleJdbcTemplate
, das veraltet ist) oder NamedParameterJdbcTemplate
?
Benannte Parameter werden nur in SimpleJdbcTemplate
und NamedParameterJdbcTemplate
unterstützt.
Versuchen Sie, die Klasse Serializable der Klasse Officers hinzuzufügen. Alles, was darin ist, ist jetzt serialisierbar, und wenn das die Klasse ist, die das Problem verursacht, wird das Problem behoben.
Hinzufügen zur Antwort, da OP nicht geholfen hat, aber normalerweise wird eine nicht serialisierbare Ausnahme verursacht, weil das Objekt nicht als Serializable markiert ist.
Gerade im Code bemerkt, dass Ihr sql 'poisitionId' verwendet, aber Ihr addValue 'positionId' verwendet. Vielleicht verursacht dieses Missverhältnis Ihr Problem?
Hi, ich hatte das gleiche Problem wie du.
Ich benutze zur Zeit Frühling 3.2 und es sieht so aus, als ob Sie in dieser Version die Klasse NamedParameterJdbcTemplate anstelle von JdbcTemplate verwenden müssen. Dadurch löst es mein Problem.
Wenn Sie von JdbcDaoSupport aus erweitern, verwenden Sie NamedParameterJdbcDaoSupport anstelle von diesem. In dieser Klasse haben Sie sowohl eine jdbcTemplate als auch eine NamedParameterJdbcTemplate
Abgesehen von jeder Ausnahme, die in Ihrem Codeblock auftreten kann, drucken Sie nur die Nachricht der ausgelösten Ausnahme aus und verlieren so den Stacktrace, der Sie zum Ursprung Ihrer Exception führt.
Da Spring nur RuntimeException(s)
auslöst, können Sie Ihre Ausnahmebehandlung entfernen und einen Blick auf den Stacktrace werfen, der Ihnen mehr über das Objekt sagt, das nicht serialisierbar ist. Als Alternative können Sie die Anweisung logger.info(e.getMessage());
in der Ausnahmebehandlung durch logger.error("Could not save officer.", e);
ersetzen, vorausgesetzt, Sie verwenden log4j. Es wird Ihnen mehr über den Fehler als nur die Nachricht der Wrapping-Ausnahme erzählen.
Wenn Sie Ihren Code betrachten, kann ein Kandidat, der diese Ausnahme verursacht, die Klasse Officers
sein. Versuchen Sie, es in der Sitzung zu speichern?
Tags und Links java mysql spring-mvc