mybatis中使用Java8的日期LocalDate、LocalDateTime
来源:互联网 发布:手机淘宝店铺怎么激活 编辑:程序博客网 时间:2024/06/05 21:00
大家知道,在实体Entity里面,可以使用Java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等字段
但是,java.sql.Date、java.sql.Timestamp、java.util.Date这些类都不好用,很多方法都过时了。
Java8里面新出来了一些API,LocalDate、LocalTime、LocalDateTime 非常好用
默认的情况下,在mybatis里面不支持java8的时间、日期。直接使用,会报如下错误
解决方法如下:
直接加入如下依赖
配置好这个依赖之后,就可以把Entity里面的Date替换成LocalDate、LocalDateTime了,其他的不用改我个人的测试核心代码:
首先创建表:
create table tb_java8date (id int not null primary key auto_increment, t_datetime datetime);
mapper层:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.mmall.dao.DateTestMapper"> <insert id="insert" parameterType="com.mmall.pojo.DateTest"> INSERT INTO tb_java8date (id, t_datetime) VALUES ( #{id,jdbcType=INTEGER}, /*#{tDateTime,jdbcType=TIMESTAMP}*/ now() ) </insert></mapper>
dao层:
package com.mmall.dao;import com.mmall.pojo.DateTest;public interface DateTestMapper { int insert(DateTest record);}pojo层:
package com.mmall.pojo;import java.time.LocalDateTime;public class DateTest { private Integer id; private LocalDateTime tDateTime; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public LocalDateTime gettDateTime() { return tDateTime; } public void settDateTime(LocalDateTime tDateTime) { this.tDateTime = tDateTime; }}测试代码,比较懒+新手,直接在原来订单项目加了一个Controller。
package com.mmall.controller.portal;import com.mmall.common.Const;import com.mmall.common.ResponseCode;import com.mmall.common.ServerResponse;import com.mmall.dao.DateTestMapper;import com.mmall.pojo.DateTest;import com.mmall.pojo.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpSession;import java.time.LocalDateTime;import java.util.Date;@Controller@RequestMapping("/cart/")public class CartTestController { @Autowired private DateTestMapper dateTestMapper; @RequestMapping("add1.do") @ResponseBody public ServerResponse add(HttpSession session) { User user = (User) session.getAttribute(Const.CURRENT_USER); if (user == null) { return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(), ResponseCode.NEED_LOGIN.getDesc()); } DateTest dateTest=new DateTest();
//按照需求 是否在此设置当前日期时间 或者 在mapper中直接用mysql获取当前日期时间的函数 now( )
// dateTest.settDateTime(LocalDateTime.now()); int rowCount=dateTestMapper.insert(dateTest); if (rowCount>0){ return ServerResponse.createBySuccessMessage("插入LocalDateTime成功"); } return ServerResponse.createByErrorMessage("插入LocalDateTime失败"); }}
以上仅在mybatis 3.4.0版本中测试有效
如果使用的mybatis版本低于3.4.0,则还需要配置如下
阅读全文
3 0
- mybatis中使用Java8的日期LocalDate、LocalDateTime
- mybatis中使用Java8的日期LocalDate、LocalDateTime
- JPA(Hibernate)中使用Java8的日期LocalDate、LocalDateTime
- JDBC中使用Java8的日期LocalDate、LocalDateTime
- JDBC中使用Java8的日期LocalDate、LocalDateTime
- Java8 LocalDate/LocalDateTime常用方法
- java8 LocalDate LocalDateTime等时间类介绍
- LocalDate LocalTime java8新的时间日期库及使用示例
- java8 新时间API用法实例(LocalDate、LocalTime、LocalDateTime)
- java8 Date,Timestamp,LocalDate,LocalTime,LocalDateTime,Instant互转
- LocalDate, LocalTime, LocalDateTime, and Instant表示时间点的日期-时间类的通用方法
- Date与LocalDate,LocalDateTime,LocalTime的转换
- 如何在java8中愉快地处理日期和时间java8新增了localdate和localtim
- jdk1.8 日期新API LocalDateTime,LocalDate,LocalTime 在Hibernate中无法反序列化解决方法
- jdk1.8 日期新API LocalDateTime,LocalDate,LocalTime 在Hibernate中无法反序列化解决方法
- Java8中 Date和LocalDateTime的相互转换
- Java8中 LocalDate和java.sql.Date的相互转换
- Java8中 Date和LocalDate的相互转换
- python下的随机函数总结
- SPIFFS技术手册
- 581. Shortest Unsorted Continuous Subarray
- Eclipse FindBugs插件安装与使用
- USB Class Codes
- mybatis中使用Java8的日期LocalDate、LocalDateTime
- CC2640R2 BLE5 Long Range mode
- python 爬取学信网登录页面
- 微软创立全新人工智能实验室,与DeepMind、OpenAI同台竞技
- 线程
- 网络基础之iso,osi七层模型
- sqlServer里面查询一张表里面有没有自增字段
- LeetCode 189 Rotate Array (思维)
- Bootstrap轮播图不兼容IE的问题