Java 与 MySQL 交互的数据类型

java1.1时,从 MySQL 中查询出来的时间日期类型,都放在 java.util.Date 类型里面了,但是这个类提供的时间操作函数太少,一般都需要转换成 java.util.Calendar 再去操作。然而使用了 java.util.Calendar 也不是很方便,一个很简单的想法,需要写很多代码才能实现。于是java 提供与 MySQL 方便交互的三种数据类型:java.sql.Date、java.sql.Time、java.sql.Timestamp,它们都是继承 java.util.Date,适合用于跟数据库交互。

MySQL 中的时间类型和对应的 Java 类型:

MySQL中的时间类型

对应的 Java 类型

Date

java.sql.Date

Year

java.sql.Date

Time

java.sql.Time

Datetime

java.sql.Timestamp

Timestamp

java.sql.Timestamp

Java 各种 Date 格式之间的转换

将 java.util.Date 格式转换成 String 格式:

Date date = new Date();  // 获取当前系统时间
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  // 设置日期格式
String strTime = simpleDateFormat.format(date);  // 格式转换
System.out.println(strTime);  // 2019-06-10 17:32:05

将 java.util.Date 格式转换成 java.sql.Date 格式:

Date date = new Date();
long longTime = date.getTime();  // 2019061017320511
java.sql.Date sDate = new java.sql.Date(longTime);
System.out.println(sDate);  // 2019-06-10

将 java.util.Date 格式转换成 Timestamp 格式:

Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
System.out.println(timestamp);  // 2019-06-10 17:32:05.11

将 String 格式转换成 java.util.Date 格式:

String strTime = "2019-06-10 17:32:05";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
    date = simpleDateFormat.parse(strTime);
} catch (ParseException e) {
    e.printStackTrace();
}
System.out.println(date);  // Mon Jun 10 17:32:05 GMT+08:00 2019