如何使用JDBC在数据库中插入当前日期和时间?

MySQL数据库中的时间戳数据类型存储日,月,年,小时,分钟,秒,小数秒。使用此功能,您可以一次表示日期和时间。

使用JDBC时,有两种插入/获取当前时间戳值的方法。

  • 使用数据库默认值作为日期。

  • 使用日历类的getTime()方法。

数据库默认值

使用以下查询创建一个名为sample的表以将时间戳存储在MySQL数据库中:

CREATE TABLE Sample(Id INT, Current_Time_Stamp TimeStamp);

现在描述如下表:

+--------------------+-----------+------+-----+-------------------+

| Field              | Type      | Null | Key | Default           |

+--------------------+-----------+------+-----+-------------------+

| Id                 | int(11)   | YES  |     | NULL              |

| Current_Time_Stamp | timestamp | NO   |     | CURRENT_TIMESTAMP |

+--------------------+-----------+------+-----+-------------------+

如果您观察到,则时间戳的默认值是系统的当前时间戳。即,如果默认情况下您不将任何值传递给此列,则它将使用当前时间戳记值填充。

因此,在使用JDBC程序将值插入具有时间戳的表中时,在Prepared语句中留下时间戳列,或者只是使用CURRENT_TIMESTAMP而不是占位符?这将用当前时间戳值填充。

示例

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

public class InsertingCurrentTime {

   public static void main(String args[])throws Exception {

      //获得连接

      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";

      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");

      System.out.println("Connection established......");

      //将值插入表      String query = "INSERT INTO sample(ID, Current_Time_Stamp)

      VALUES (?, CURRENT_TIMESTAMP)";

      PreparedStatement pstmt = con.prepareStatement(query);

      pstmt.setInt(1, 1);

      pstmt.execute();

      System.out.println("Data inserted......");

   }

}

输出结果

Data inserted......

如果您观察该表的内容,则可以将其与当前时间戳记值一起看到,如下所示:

+------+---------------------+

| Id   | Current_Time_Stamp  |

+------+---------------------+

| 1    | 2019-02-27 17:18:17 |

+------+---------------------+

getTime()Calendar类的方法

Calendar类的getTime()方法返回Date类的Object,该对象保存日历的当前时间值。

Calendar calendar = Calendar.getInstance();

java.util.Date currentTime = calendar.getTime();

java.util.Date类还提供了一个名为方法的getTime()此方法返回类型长的一个变量,它表示从标准信号出现时间的毫秒数(自1970年1月1日,00:00:00 GMT)到该对象的当前时间值。

long time = currentTime.getTime();

现在,将此获得的当前时间值作为一个参数传递给setTimedtamp()方法,其中另一个将是代表占位符?的参数索引的整数。您需要将其设置为当前时间戳值。

pstmt.setTimestamp(2, new Timestamp(time));

以上是 如何使用JDBC在数据库中插入当前日期和时间? 的全部内容, 来源链接: utcz.com/z/347311.html

回到顶部