背景 数据库存储的时间字段的类型是datetime Java实体类的时间字段类型是Date 需求:响应前端的时间字段格式为”yyyy-MM-dd HH:mm:ss“ 步骤 1、定义resultMap
数据库存储的时间字段的类型是datetime
Java实体类的时间字段类型是Date
需求:响应前端的时间字段格式为”yyyy-MM-dd HH:mm:ss“
定义 Java 对象和数据库表字段的对应关系,在 mapper.xml 文件中使用 #{属性名,jdbcType=数据库字段类型} 来进行参数传递和结果集映射,例如:
<resultMap id="userResultMap" type="User"> <id column="id" property="id" jdbcType="INTEGER"/> <result column="name" property="name" jdbcType="VARCHAR"/> <result column="age" property="age" jdbcType="INTEGER"/> <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>resultMap>
@jsonFormat日期格式化你的pattern格式,timezone设置时区
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")private Date createTime;
注:时区也可以在application.yml或application.propertites配置文件中添加,一劳永逸,@JsonFormat就不需要配置timezone了
spring: jackson: time-zone: Asia/Shanghai
步骤1和2没有解决的话,继续如下三个步骤
public class MyDateTypeHandler implements TypeHandler<Date> { private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Override public void setParameter(PreparedStatement ps, int i, Date date, JdbcType jdbcType) throws sqlException { if (date == null) { ps.setNull(i, jdbcType.TYPE_CODE); } else { ps.setString(i, sdf.format(date)); } } @Override public Date getResult(ResultSet rs, String columnName) throws SQLException { Timestamp ts = rs.getTimestamp(columnName); return ts == null ? null : new Date(ts.getTime()); } @Override public Date getResult(ResultSet rs, int columnIndex) throws SQLException { Timestamp ts = rs.getTimestamp(columnIndex); return ts == null ? null : new Date(ts.getTime()); } @Override public Date getResult(CallableStatement cs, int columnIndex) throws SQLException { Timestamp ts = cs.getTimestamp(columnIndex); return ts == null ? null : new Date(ts.getTime()); }}
@Configuration@MapperScan({"com.example.mapper"})public class MyBatisConfig { @Bean public TypeHandler<Date> myDateTypeHandler() { return new MyDateTypeHandler(); }}
<resultMap id="myResultMap" type="com.example.MyResultType"> <id property="id" column="id" /> <result property="createTime" column="create_time" typeHandler="com.example.MyDateTypeHandler"/>resultMap>
结束语:当你在做你热爱的事情时,你永远不会感到疲惫。
来源地址:https://blog.csdn.net/Da_zhenzai/article/details/129532255
--结束END--
本文标题: MyBatis实现 Java 对象和数据库中日期类型之间的转换(超详细)
本文链接: https://www.lsjlt.com/news/416435.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0