使用Mybatis查询Oracle数据库Date类型丢失

使用Mybatis查询Oracle数据库Date类型丢失时间精度

1.相关信息

数据库版本:oracle 11g

框架:mybatis 3.5.4

mapper.xml示例:

1
2
3
<select id="selectExampleList" parameterType="Example" resultType="Example">
select * from example order by create_time desc
</select>

问题:查询成功后,date类型的字段有日期信息但是丢失时间信息

2.解决方案

使用resultMap替换resultType

1
2
3
4
5
6
7
8
9
<resultMap id="StudentMap" type="Student">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="createTime" column="create_time"/>
</resultMap>

<select id="selectExampleList" parameterType="Example" resultMap="StudentMap">
select * from example order by create_time desc
</select>

3.原因分析

在oracle数据库中的DATE类型里面是包含日期和时间的,由于使用resultType,mybatis会将类型映射成java.sql.Date类型,而这个类型是不包含时间信息的


使用Mybatis查询Oracle数据库Date类型丢失
http://blog.jingxiang.ltd/2023/04/17/使用Mybatis查询Oracle数据库Date类型丢失时间精度/
作者
yemangran
发布于
2023年4月17日
许可协议