mybatis低版本jsr310(LocalDateTime,LocalDate等) Joda Time支持

<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <!--映射下划线风格到驼峰风格-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <typeHandlers>
        <typeHandler handler="org.apache.ibatis.type.InstantTypeHandler" />
        <typeHandler handler="org.apache.ibatis.type.LocalDateTimeTypeHandler" />
        <typeHandler handler="org.apache.ibatis.type.LocalDateTypeHandler" />
        <typeHandler handler="org.apache.ibatis.type.LocalTimeTypeHandler" />
        <typeHandler handler="org.apache.ibatis.type.OffsetDateTimeTypeHandler" />
        <typeHandler handler="org.apache.ibatis.type.OffsetTimeTypeHandler" />
        <typeHandler handler="org.apache.ibatis.type.ZonedDateTimeTypeHandler" />
    </typeHandlers>
</configuration>

在配置文件mybatis-config.xml中添加

<typeHandlers>节点所有内容,并添加maven依赖

 <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-typehandlers-jsr310</artifactId>
      <version>1.0.2</version>
    </dependency>

 

Joda Time

JSR310伴随着JDK8的发布,带来了新的时间类、日期类、日期时间类、以及时间戳相关类。

笔者曾经用Joda处理了7-8个时区的日期时间、joda游刃有余。jsr310有抄袭Joda time的嫌疑,

这从一定程序上拉拢了用户不愿放弃java的时间处理类。

在JDK8之前,如果你曾经使用Joda-time处理时间,可以添加以下时间处理类的委托。

(没具体测试)

maven依赖:

<dependency>
    <groupId>io.eliez</groupId>
    <artifactId>joda-time-mybatis</artifactId>
    <version>2.0.0</version>
</dependency>

mybatis-config.xml添加代码如下

<typeHandlers>
...
<typeHandler handler="org.joda.time.mybatis.handlers.DateTimeTypeHandler" />
        <typeHandler handler="org.joda.time.mybatis.handlers.LocalDateTypeHandler" />
        <typeHandler handler="org.joda.time.mybatis.handlers.LocalTimeTypeHandler" />
...
</typeHandlers>

 

转载于:https://www.cnblogs.com/passedbylove/p/11388659.html

MyBatis中,如果你需要将`LocalDate`类型的值从数据库查询结果映射到`LocalDate`类型的实体属性,你需要创建一个自定义的类型handler或者配置数据访问器(DAO)。 1. 自定义类型处理器(TypeHandler): 首先,在项目中创建一个实现了`org.apache.ibatis.type.TypeHandler`接口的类,专门处理`LocalDate`类型。例如: ```java public class LocalDateTypeHandler implements TypeHandler<LocalDate> { @Override public void setParameter(ParameterContext parameterContext, Object value, JdbcType jdbcType) { if (value != null) { parameterContext.setObject(value); } } @Override public LocalDate getResult(ResultSet resultSet, String columnName) throws SQLException { return resultSet.getObject(columnName, java.time.LocalDate.class); } // 其他可能的方法,如null值处理等 } ``` 然后,在MyBatis的配置文件`mybatis-config.xml`或`applicationContext-mybatis.xml`中注册这个类型处理器: ```xml <typeHandlers> <typeHandler handler="com.example.LocalDateTypeHandler"/> </typeHandlers> ``` 2. 数据访问器(ResultMap): 如果你想在一个特定的结果映射中指定这个转换,可以在`resultMap`元素中添加`result`标签,并设置`type`属性为`java.util.Date`,然后在`column`标签中指定实际的列名: ```xml <resultMap id="exampleResultMap" type="YourEntity"> <result column="your_date_column" property="yourProperty" jdbcType="DATE" typeHandler="localDateTypeHandler"/> </resultMap> ``` 记得替换上述代码中的`YourEntity`, `your_date_column`, 和 `yourProperty`为实际的类名、字段名和列名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值