开发中遇到的问题_1
# 开发中遇到的问题_1
# 日期格式相关问题
# mybatis将时间存入数据库后,只有日期对的,时分秒全是0?
将实体类的属性类型设置为java.sql.Date 如果你想在实体类中使用java.util.Date, 则要注意: 完整的日期时间,要确保jdbcType不填
- 只需要时间,要指定jdbcType=”TIME”
- 只需要日期,要指定jdbcType=”DATE”
于是将映射的XML文件里的,jdbcType="DATE"这段代码清了就可以了。
如果不指定jdbcType=DATE,那么Mybatis会默认jdbcType=TIMESTAMP类型
# 日期格式反序列化报错
运行出现如下异常:com.fasterxml.jackson.databind.exc.InvalidFormatException
可能原因:jackson默认的日期反序列不支持yyyy-MM-dd HH:mm:ss 这种格式,所以反序列化失败
解决方案:
重写jackson反序列化:
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CustomJsonDateDeserializer extends JsonDeserializer<Date> {
@Override
public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = jp.getText();
try {
return format.parse(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
参考链接 (opens new window):https://blog.csdn.net/weixin_44530708/article/details/124016733
上次更新: 2024/12/01, 14:58:26