mybatis-plus使用jdk8的LocalDateTime 查询时报错
时间: 2023-06-20 17:07:26 浏览: 184
mybatis-plus在使用jdk8的LocalDateTime查询时,需要添加一个配置项。在mybatis-plus的配置文件中添加以下配置:
```yaml
mybatis-plus:
configuration:
# 查询返回null值时,不会映射到实体类上
map-underscore-to-camel-case: true
# 配置 LocalDateTime 和 Date 的序列化和反序列化方式
# 使用 jdk8 的时间类型,需要配置
# 下面两个配置可以根据自己的需要进行配置
# LocalDateTime 序列化方式
# 可选值:java.util.Date、java.sql.Date
# 默认值:java.util.Date
# type-handle: java.sql.Date
type-handlers-package: com.baomidou.mybatisplus.extension.handlers
```
在以上配置中,需要注意的是 `type-handlers-package` 配置项。它指定了mybatis-plus的类型处理器包路径,其中包含有针对jdk8的LocalDateTime类型的处理器。
另外,如果在实体类中使用了jdk8的LocalDateTime类型,需要在对应的mapper.xml文件中,将数据库中的datetime类型字段映射为LocalDateTime类型,例如:
```xml
<resultMap id="BaseResultMap" type="com.example.entity.User">
<result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP"
javaType="java.time.LocalDateTime"/>
<result column="gmt_modified" property="gmtModified" jdbcType="TIMESTAMP"
javaType="java.time.LocalDateTime"/>
</resultMap>
<select id="getUserById" resultMap="BaseResultMap">
select id, name, age, gmt_create, gmt_modified from user where id = #{id}
</select>
```
这样就可以在mybatis-plus中使用jdk8的LocalDateTime类型进行查询了。
阅读全文