概要
MySQLに登録された日時をjavaで取得する方法、javaからMySQLへ日時を登録する方法を紹介する。
MySQLへ接続する方法はこちらを見て頂きたい。https://qiita.com/QiitaD/items/d605b07e849e3bec0722
MySQLに定義する列
日時をtimestamp方で定義する。列名は"date_time"、フォーマットは"yyyy-MM-dd HHss"である。
MySQLからjavaでの取得
String mySql = "select * from table_name";//日時のあるデータを取得するSQL文
ResultSet rs = stmt.executeQuery(mySql); //SQL実行、データを取得
while (rs.next()) {
rs.getTimestamp("date_time"); //取得データから日時情報を取得
}
javaからMySQLへ日時を登録する
例として現在時刻を登録する。
String mySql = "insert into table (date_time) values ('" + getNowDateTime(){ + "')";
stmt.executeUpdate(mySql);
/**
* 現在日時をyyyy/MM/dd HH:mm:ss形式で取得する.<br>
*/
public static String getNowDateTime(){
final DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
final Date date = new Date(System.currentTimeMillis());
return df.format(date);
}
現在時刻取得方法はこちらを参照した。https://qiita.com/zuccyi/items/d9c185588a5628837137
困ったところ
困ったというほどではないが、初心者の方に向けて注意点が2つある。
①SQLの実行文
selectでデータを取得するときはexecuteQueryだが、updateやinsert、deleteの時はexecuteUpdateである。
②シングルクォーテーション
忘れやすいが、今回のサンプルでは日時を'(シングルクォーテーション)で囲まなければならない。
上記2つは私が超初心者時代によく躓いていたので気を付けて頂きたい。
感想
本記事では日時の扱い方として一例を紹介したが、日時には方が様々なので他にも使い方がある。(DateやLocaleDateTimeなど)
型を変えると変換が面倒になったりするので、よく考えて使いたい。
参考URL
日付と時刻型
https://www.dbonline.jp/mysql/type/index4.html
timestampとdatetimeの違い
https://qiita.com/ykawakami/items/2449a24e3b82ff0cbab6
timestampの例外
https://ts0818.hatenablog.com/entry/2017/08/11/155011