Wenn ich Null-Wert in der Datumsspalte setze bekomme ich "1900-01-01 00: 00: 00.000" Wert in meiner Tabelle und ich erwarte NULL in dieser Spalte. Da dies richtig in jdbc behandelt, wenn ich wie diesesWie behandelt man Null beim Einstellen des Datums in log4j2 jdbcpender?
preparedStatement.setBindParam(Types.TIMESTAMP, 12, startdate);
log4j2.xml
setzen<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
<CustomLevels>
<CustomLevel name="TESTLOG" intLevel="552" />
</CustomLevels>
<Appenders>
<JDBC name="myAppender" tableName="MYTABLE">
<DataSource jndiName="java:MyDataSource" />
<Column name="ID" pattern="%X{ID}" isUnicode="false"/>
<Column name="startdate" pattern="%X{startdate}" isUnicode="false"/>
<Column name="enddate" pattern="%X{enddate}" isUnicode="false"/>
</JDBC>
</Appenders>
<Loggers>
<Root level="trace" includeLocation="false">
<AppenderRef ref="myAppender" level="TESTLOG" />
</Root>
</Loggers>
</Configuration>
Datentyp der Spalten Startdatum und Enddatum ist Datumzeit
ThreadContext.put("startdate", startdate != null ? startdate.toString() : null);
ThreadContext.put("enddate", a_reportEndDate != null ? enddate.toString() : null);
final Logger LOGGER = LogManager.getLogger();
LOGGER.log(Level.forName("TESTLOG", 552), "");
Das gleiche für String mit Nullwert.
Möglicherweise wurde Ihre Tabelle mit Standardwerten für Zeitstempelspalten erstellt? – Ivan