JDBC操作数据库Date
类型数据
- 由于
java
原生的工具类java.util
提供的Date
对象与JDBC提供的Date
对象并不相同- 分别是
java.util.Date
和java.sql.Date
java.sql.Date
是java.util.Date
的子类- 所以在进行增删改查部分操作中,不能直接将原生工具类的
Date
对象直接运用到JDBC中可以将
java.sql.Date
直接转换成java.util.Date
使用SimpleDateFormat
转换
SimpleDateFormat
可以将字符串转换成Util.Date
//字符串:自定义日期 String str = "1999-09-09"; //将字符串转换为Util.Date SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); //parse方法转换 java.util.Date date = simpleDateFormat.parse(str); System.out.println(date);
也可以将
Util.Date
转换成字符串//将Date对象转换成字符串 String dates = simpleDateFormat.format(new java.util.Date()); System.out.println(dates); //2020-09-14
将字符串类型的固定日期转换成sql.Date
sql.Date
不支持字符串转换,只支持毫秒值创建- 通过
util.Date
拿到固定日期的毫秒值,再转换成sql.date
//字符串:固定日期
String str = "1999-09-09";
//将字符串转换为Util.Date
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
//parse方法转换
java.util.Date date = simpleDateFormat.parse(str);
System.out.println(date);
//通过util.Date拿到指定日期的毫秒值,再转换成sql.Date
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
System.out.println(sqlDate);
将日期转换封装成工具类
package com.qf.Person;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class DateUtils {
//1. 字符串转换成util.Date
public static java.util.Date strToUtil(String str) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
java.util.Date date = simpleDateFormat.parse(str);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
//2. util.Date 转换成sql.Date
public static java.sql.Date utilToSql(java.util.Date date) {
return new java.sql.Date(date.getTime());
}
//3. util.Date转换成字符串形式
public static String utilToStr(java.util.Date date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.format(date);
}
}