1. 程式人生 > >使用Java向Mysql資料庫寫入當前時間

使用Java向Mysql資料庫寫入當前時間

     最近做專案需要採集某些資料然後儲存在資料庫中,儲存時要求帶上採集時間,但是本人是初學Mysql和Java沒多久,坦白點說是不知怎麼寫,搜尋一下發現沒啥資源,後來硬下頭皮把Mysql的API文件看了一下,終於找到了思路,以下給出詳細思路及程式碼。

     首先,面向物件程式設計就要求寫程式時要知道找哪個物件,操作資料庫那就看看Java的API文件有沒有與sql有關的類,當然肯定有,在java.sql包裡有一個statement介面,該接口裡的定義了許多方法,其中:

   int executeUpdate(String sql):執行給定 SQL 語句,該語句可能為 INSERT、UPDATE 或 DELETE 語句,或者不返回任何內容的 SQL 語句(如 SQL DDL 語句)。

這個方法就可以執行Mysql語句。

     那麼,怎麼獲得當前時間呢?查了一下,發現java.util.Date為java.sql.Date的父類,所以在Java中建立的java.util.Date不能直接通過JDBC操作,插入到資料庫中,需要一些轉換步驟,具體怎麼實現大家去搜吧,我不用這個方法。我查看了Mysql的參考手冊,找到“日期和時間型別”裡的“DATETIME、DATE和TIMESTAMP型別”,閱讀說明,總算找到了思路,至於文件大家可以去下載來看。

現在就給大家Java的程式碼吧。

package cn.scau.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MysqlAddDate {
/* 需預先在Mysql裡新建一個名為MysqlDate的資料庫
* @author harchi
* 華南農業大學 電子資訊工程
*/
public static void main(String[] args) throws SQLException {
Connection connection = null;
String sql;
//設定連線Mysql資料庫的的引數,執行程式前需檢查使用者名稱與密碼是否正確,以及資料庫名稱是否對應
String url = "jdbc:mysql://localhost:3306/MysqlDate?"
+ "user=root&password=123456&useUnicode=true&characterEncoding=UTF8";
try {
//載入驅動
new com.mysql.jdbc.Driver();
System.out.println("Success in loading Mysql driver!");
//連線資料庫
connection = DriverManager.getConnection(url);
Statement statement = connection.createStatement();
//建立名為showtime,含有NO與nowtime屬性的資料表的sql語句
sql="CREATE TABLE showtime(NO INT(20),nowtime DATETIME,PRIMARY KEY(NO))";
int result = statement.executeUpdate(sql);
if (result!=-1) {
System.out.println("Success in creating table!");
//插入第一個資料,使用Mysql語句的NOW()獲得當前時間
sql = "INSERT INTO showtime(NO,nowtime) VALUES(1,NOW())";
result = statement.executeUpdate(sql);
//延時3秒,插入第二個資料
Thread.sleep(3000);
sql = "INSERT INTO showtime(NO,nowtime) VALUES(2,NOW())";
result = statement.executeUpdate(sql);
//查詢資料並顯示
sql = "SELECT * FROM showtime;";
ResultSet resultset =  statement.executeQuery(sql);
System.out.println("NO\t\ttime");
while (resultset.next()) {
System.out.println(resultset.getInt(1)+"\t"+resultset.getString(2));
}
}
}catch (SQLException e) {
            System.out.println("Unsuccess to handle Mysql!");  
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            connection.close();
        }
}
}