如何在 JDBC 中将日期值插入表中?
你可以使用 date 数据类型在 SQL 中插入日期值,java.sql.Date 类映射到 SQL DATE 类型。
PreparedStatement 接口提供了一个名为 setDate() 的方法。你可以使用它向表中插入日期。此方法接受两个参数 -
一个整数,表示我们需要向其中设置日期值的占位符 (?) 的参数索引。
一个表示要传递的日期值的 Date 对象。java.sql.Date 类的构造函数接受一个 long 类型变量,表示从纪元开始的毫秒数(标准基本时间,即 1970 年 1 月 1 日,00:00:00 GMT)。
示例
假设我们在 MySQL 数据库中创建了一个名为 Emp 的表,其描述如下 -
+----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | DOB | date | YES | | NULL | | | Location | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+
以下 JDBC 程序会向此表中插入记录 -
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Date;
public class InsertingDate {
public static void main(String args[])throws Exception {
//Getting the connection
String mysqlUrl = "jdbc:mysql:///sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
//Inserting values to a table
String query = "INSERT INTO Emp(Name, DOB, Location) VALUES (?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, "Amit"); pstmt.setDate(2, new Date(622790105000L));
pstmt.setString(3, "Hyderabad");
pstmt.execute();
pstmt.setString(1, "Sumith"); pstmt.setDate(2, new Date(620611200000L));
pstmt.setString(3, "Vishakhapatnam");
pstmt.execute();
pstmt.setString(1, "Sudha");
pstmt.setDate(2, new Date(336614400000L));
pstmt.setString(3, "Vijayawada");
pstmt.execute();
System.out.println("Records inserted......");
}
}输出
Connection established...... Records inserted......
如果你验证 MySQL 数据库中的表,你可以观察到表的内容如下 -
mysql> select * from Emp; +--------+------------+----------------+ | Name | DOB | Location | +--------+------------+----------------+ | Amit | 1989-09-26 | Hyderabad | | Sumith | 2019-03-19 | Vishakhapatnam | | Sudha | 2019-03-19 | Vijayawada | +--------+------------+----------------+ 3 rows in set (0.00 sec)
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP