DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)

导读:本篇文章讲解 DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题背景

根据之前介绍的Mybatis-generator,本章介绍我们常用的几种时间插入到mysql的方式

  • 插件可以自动生成mapper映射文件
  • 可以自己灵活更改sql语句

注意事项:

  • 因为我写的是一个系列,在之前的文章介绍过的一般不会重复介绍,可以根据以下链接查看之前的知识点
  • 默认已安装mysql6或以上版本
  • 默认已安装JDK
  • 可以根据本文的项目搭建自己创建工程,也可以直接下载源码进行参考
  • 第一篇文章有数据表创建,我在贴一份吧,源码里面也有
# 创建数据库
CREATE DATABASE mysqlTest;
# 选择使用数据库
USE mysqlTest;
# 创建表t_article并插入相关数据
DROP TABLE IF EXISTS datetime_record;
DROP TABLE IF EXISTS generator_record;

CREATE TABLE datetime_record (
		id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录id',
		create_time datetime(3) COMMENT '创建时间',
		update_time datetime(3) COMMENT '更新时间',
		PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE generator_record (
		id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录id',
		create_time varchar(50) COMMENT '创建时间',
		update_time varchar(50) COMMENT '更新时间',
		PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),单条增删改查CRUD(一)

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),selectByExample,insertSelective,countByExample,selectOneByExample的使用(二)

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),deleteByExample,batchInsert,updateByExampleSelective,updateByExample的使用(三)

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),page分页和limit的使用(四)

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),insert和update插入返回带自增主键的两种方式(五)

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)

时间插入

1 数据库类型为DateTime,使用new Date()进行插入时间

    @Test
    public void datetimeTest1() {
        Date date = new Date();
        DatetimeRecord datetimeRecord = DatetimeRecord.builder()
                .createTime(date)
                .updateTime(date)
                .build();
        int insert = datetimeRecordMapper.insert(datetimeRecord);
        log.info("insert: {}", insert);
    }

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)
注意后面的小数点是在创建表的时候,添加的,保留三位小数
DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)
2 数据库类型为DateTime,使用Timestamp进行插入,这个精度比Date低一些

    @Test
    public void datetimeTest2() {
        Date date = new Date();
        //Timestamp比Date精度低一些
        Timestamp timestamp = new Timestamp(date.getTime());
        DatetimeRecord datetimeRecord = DatetimeRecord.builder()
                .createTime(timestamp)
                .updateTime(timestamp)
                .build();
        int insert = datetimeRecordMapper.insert(datetimeRecord);
        log.info("insert: {}", insert);
    }

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)

3 数据库类型为varchar,使用字符串进行插入

package com.yg.mybatisgenerator.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeUtils {

    public final static String DATE_TIME_FORMAT_PATTERN = "yyyy-MM-dd HH:mm:ss";
    public final static String DATE_FORMAT_PATTERN = "yyyy-MM-dd";

    public static String getNowDate() {
        Date data = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat(DATE_TIME_FORMAT_PATTERN);
        String currentTime = formatter.format(data);
        return currentTime;
    }
}
    @Test
    public void datetimeTest3() {
        GeneratorRecord generatorRecord = GeneratorRecord.builder()
                .createTime(DateTimeUtils.getNowDate())
                .updateTime(DateTimeUtils.getNowDate())
                .build();
        int insert = generatorRecordMapper.insert(generatorRecord); // 成功返回1,插入一条数据成功
        log.info("generatorRecord: {}", generatorRecord);
        log.info("insert: {}", insert);
        GeneratorRecord record = generatorRecordMapper.selectByPrimaryKey(1L);
        log.info("generatorRecord: {}", record);
    }

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)
4 数据库类型为DateTime,使用SimpleDateFormat格式化插入

    @Test
    public void datetimeTest4() throws ParseException {
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_TIME_FORMAT_PATTERN);
        String format = simpleDateFormat.format(date);
        log.info("format: {}", format);
        date = simpleDateFormat.parse(format);
        DatetimeRecord datetimeRecord = DatetimeRecord.builder()
                .createTime(date)
                .updateTime(date)
                .build();
        int insert = datetimeRecordMapper.insert(datetimeRecord);
        log.info("insert: {}", insert);
    }

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)

5 更改mapper,将时间改成now()
DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)

    @Test
    public void datetimeTest5(){
        DatetimeRecord datetimeRecord = DatetimeRecord.builder()
                .build();
        int insert = datetimeRecordMapper.insert(datetimeRecord);
        log.info("insert: {}", insert);
    }

DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)
6 整体目录结构
DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)

总结

  • 可以把更新操作改成now(),就不用每次都自己插入了

作为程序员第 73 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)DAO层使用Mybatis-generator生成映射文件连接Mysql入门测试用例(无限速源码下载),Datetime时间插入五种方式(六)

Lyric:做好准备

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/110802.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!