MySQLにTIMESTAMPという日付を保存します。私はDateTypeHandler
がこの変換を行うことができるようだ。私は私のプロジェクトにそれを入れましたが、失敗しました。mybatis DateTypeHandlerはjavaの日付をSQLに変換できませんTIMESTAMP
私は「mapper.xml」で次の両方を試してみましたが、どちらも失敗しました。
<insert id="insertUser">
insert into user (user_id, password, token,
register_time, user_type, account_type) values (
#{userId},
#{password}, #{token}, #{registerTime, jdbcType=TIMESTAMP,
javaType=java.util.Date, typeHandler=org.apache.ibatis.type.DateTypeHandler},
#{userType},
#{accountType}
)
</insert>
<insert id="insertUser">
insert into user (user_id, password, token,
register_time, user_type, account_type) values (
#{userId},
#{password}, #{token}, #{registerTime, typeHandler=org.apache.ibatis.type.DateTypeHandler},
#{userType},
#{accountType}
)
</insert>
エラーログには、次の通りである:
org.springframework.dao.DataIntegrityViolationException:
### Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation:
Data truncation: Incorrect datetime value: '3892-04-19 00:00:00' for column
'register_time' at row 1
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into user (user_id, password, token, register_time, user_type, account_type) values ( ?, ?, ?, ?, ?, ? )
### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect
datetime value: '3892-04-19 00:00:00' for column 'register_time' at row 1
; SQL []; Data truncation: Incorrect datetime value: '3892-04-19 00:00:00'
for column 'register_time' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: org.springframework.dao.DataIntegrityViolationException:
おかげであなたは助けるために私が見つかりました。私はJavaの日付を誤解しています。したがって、私は間違った日付を生成します。 – molly