Java万年历连接MySQL_如何使用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));

数据很详细 CREATE TABLE `zb_calendar` ( `GregorianDateTime` varchar(255) DEFAULT NULL COMMENT '公历日期时间', `LunarDateTime` varchar(255) DEFAULT NULL COMMENT '农历日期时间', `LunarShow` varchar(255) DEFAULT NULL, `IsJieJia` varchar(255) DEFAULT NULL, `LJie` varchar(255) DEFAULT NULL COMMENT '农历节日', `GJie` varchar(255) DEFAULT NULL COMMENT '公历节日', `Yi` varchar(255) DEFAULT NULL COMMENT '宜', `Ji` varchar(255) DEFAULT NULL COMMENT '忌', `ShenWei` varchar(255) DEFAULT NULL COMMENT '神位', `Taishen` varchar(255) DEFAULT NULL COMMENT '胎神', `Chong` varchar(255) DEFAULT NULL COMMENT '冲煞', `SuiSha` varchar(255) DEFAULT NULL COMMENT '岁煞', `WuxingJiazi` varchar(255) DEFAULT NULL COMMENT '五行甲子', `WuxingNaYear` varchar(255) DEFAULT NULL COMMENT '纳音五行年', `WuxingNaMonth` varchar(255) DEFAULT NULL COMMENT '纳音五行月', `WuxingNaDay` varchar(255) DEFAULT NULL COMMENT '纳音五行日', `MoonName` varchar(255) DEFAULT NULL COMMENT '农历月名称', `XingEast` varchar(255) DEFAULT NULL COMMENT '星宿吉凶(东方星座)', `XingWest` varchar(255) DEFAULT NULL COMMENT '四方(星座)', `PengZu` varchar(255) DEFAULT NULL COMMENT '彭祖百忌', `JianShen` varchar(255) DEFAULT NULL COMMENT '黄历12值神建', `TianGanDiZhiYear` varchar(255) DEFAULT NULL COMMENT '天干地支年', `TianGanDiZhiMonth` varchar(255) DEFAULT NULL COMMENT '天干地支月', `TianGanDiZhiDay` varchar(255) DEFAULT NULL COMMENT '天干地支日', `LMonthName` varchar(255) DEFAULT NULL COMMENT '农历月名称', `LYear` varchar(255) DEFAULT NULL COMMENT '生肖', `LMonth` varchar(255) DEFAULT NULL COMMENT '农历月', `LDay` varchar(255) DEFAULT NULL COMMENT '农历日', `SolarTermName` varchar(255) DEFAULT NULL COMMENT '农历节气的名称' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='万年历';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值