Java向mysql数据库插入datetime类型数据实例(精)

在Mysql数据库中日期跟时间有两种:

1、date类型,date类型也就是我们常见的储存yyyy-MM-dd类型的日期,它不能储存时间,也就是只能储存日期,

2、dateitme就是可以储存日期同时也可以储存时间。 datetime可以保存1000-01-01到 9999-12-31的日期。

Java向mysql数据库插入datetime类型数据实例(精)

上面mysql数据库中birthday字段类型设置的是datetime,当我们需要存入数据库时,直接将java.util.Date存入数据库是不行的!

我往数据库插入的数据是这样的

Date date=new Date(); //获取一个Date对象
DateFormat simpleDateFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //创建一个格式化日期对象
String birthday= simpleDateFormat.format(date); //格式化后的时间

这样得到的时间对象确实是 “yyyy-MM-dd HH:mm:ss“,程序运行下去应该没有事,但是控制台报错了,因为在实体类中设置字段birthday是使用的java.util.Date类型,然后我传过去自然就是错误的。

import java.util.Date;
public class User{
  private String id;
  private String username;
  private Date birthday;
  ……

需要进行转换,使用Timestamp对象,代码如下:

java.util.Date date = new java.util.Date(); // 获取一个Date对象
Timestamp timeStamp = new Timestamp(date.getTime()); // 将日期时间转换为数据库中的timestamp类型

使用这两行代码转换时间后,我们就可以往数据库插入”yyyy-MM-dd HH:mm:ss“类型。

通过Intellij IDEA查看继承关系,我们可以发现Timestamp对象也是继承了Date类

Java向mysql数据库插入datetime类型数据实例(精)

向mysql数据库插入datetime类型数据的两种方法

方式一:使用java.sql.Timestamp这个类来进行转换(推荐)

   Timestamp t = new Timestamp(user.getBirthay().getTime());
   ps.setTimestamp(3, t);

这样就可以直接存入数据库!

方式二:将birthday转换成特定格式的字符串String,存入数据库,这样也可以!

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String birthday = df.format(user.getBirthay());
ps.setString(3, birthday);//这样和下面这样都可以!
ps.setObject(3, birthday);

推荐阅读:MySql数据库Timestamp、time、datetime 区别及使用详解

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/1859.html

(6)
江山如画的头像江山如画管理团队
上一篇 2018年5月2日 下午3:09
下一篇 2018年5月3日 下午9:06

99%的人还看了以下文章

  • 最清楚的过拟合(Overfitting)、欠拟合讲解

    问题的产生 当我们构建模型时,总会希望假设空间参数尽可能多,系统越复杂,拟合得越好嘛!我们还希望我们的优化算法能使我们的模型产生的损失函数的值尽可能小(即我们的假设空间能够贴合每一个训练样本点)。但这样真的好吗?奥卡姆剃刀貌似又胜利了。然而假设我们的模型达成了上述的情况,有很大概率产生一个ML界非常令人头疼的一件事:过拟合(Overfitting)。 欠拟合…

    2022年9月21日
    7.5K0
  • JSP三层架构开发学生管理系统源码-dao、entity、service、servlet

    表示层:MVC中的视图层和控制器层,前端通常为html css js jsp文件,后端例如Servlet文件,调用业务逻辑层业务逻辑层(Service):接受表示层的请求,先进行逻辑处理,后调用数据逻辑层,(增:查+增) 数据访问层(Dao):直接访问数据库的操作 通过三层架构,将表示层请求传递到数据访问层,数据访问层将结果返回至表示层 具体流程 开发环境:…

    2021年5月1日 编程开发
    3.4K0
  • Pandas读取excel:Excel file format cannot be determined解决方法

    Pandas读取excel时报错,excel表格不能被指定,是什么原因? 这个问题我搞了很久,最后终于搞明白了,网上各种什么utf-8呀,格式化或者另存都不行,我都试过了。 Excel file format cannot be determined解决方法 首先要确定excel已经放在项目目录下,路径是正确的。 一、然后确保安装了所需要的模块 pip in…

    2022年9月11日
    16.8K0
  • python 期末复习-综合练习题

    十八、分别使用for循环和while循环求1+2+3+4+……+856的和 要求: 1、新建一个“sum.py”文件。 2、编写程序。 3、调试程序。 4、排除错误。 十九、输入一个数,判断奇数偶数 要求: 1、新建一个“number.py”文件 2、编写程序。 3、调试程序。 4、排除错误。 二十、分别使用for循环和while循环输出1到100之间的偶数…

    2023年6月15日
    4.9K0
  • 第二课:Maven的下载安装及环境变量配置

    一、Maven的下载 下载地址:http://maven.apache.org/download.cgi 下载完成后,得到一个压缩包apache-maven-***-bin.zip,解压,可以看到maven的组成目录 Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf:含有setting…

    2023年1月27日 编程开发
    4.8K0
  • 基于jspSmartUpload的Jsp文件上传:防止文件重名被覆盖的解决方法

    基于jspSmartUpload的Jsp文件上传:防止文件重名被覆盖的解决方法 支持中文的jsp文件上传组件:jspSmartUpload.jar下载 upload_repeat.html <html> <head> <title>中国网页设计:文件上传</title> <meta http-equiv=…

    2018年12月11日
    2.3K0

发表回复

登录后才能评论