私は日付の計算が必要なプロジェクトに取り組んでいます。私は日付オブジェクトをアクセスデータベース内に格納する方法を探していますが、すべてのメソッドでエラーが発生します。Java 8を使用して日付オブジェクトをデータベースに挿入しますか?
//========================== SetupDB =====================================//
public void setupDB() {
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
c1 = DriverManager.getConnection(ABDebatePro.DBURL);
stmt = c1.createStatement();
}
catch (Exception e) {
System.out.println(e);
}
}
//========================== InsertDB ====================================//
public void insertDB(int m, String ft, String st, int s1, int s2, Date d) {
MatchNumber = m;
FirstTeam = ft;
SecondTeam = st;
FirstTeamScore = s1;
SecondTeamScore = s2;
MatchDate = d;
setupDB();
try {
String sql = "insert into Schedule (MatchNumber, FirstTeam, SecondTeam, FirstTeamScore, SecondTeamScore, MatchDate) values " + "(" + m + ",'" + ft + "','" + st + "'," + s1 + "," + s2+ ",'" + d + "')";
int z = stmt.executeUpdate(sql);
c1.close();
} catch (Exception fe) {
System.out.println(fe);
}
}
//========================== Main ========================================//
public static void main(String[] args) {
Schedule sch = new Schedule();
try {
java.sql.Date date1 = java.sql.Date.valueOf("2016-10-25");
sch.insertDB(3, "Turtles", "Aligators", 4, 3, date1);
} catch (Exception ex) {
System.out.println(ex);
}
マイログイン:
insert into Schedule (MatchNumber, FirstTeam, SecondTeam, FirstTeamScore, SecondTeamScore, MatchDate) values (3,'Turtles','Aligators',4,3,'2016-10-25')
net.ucanaccess.jdbc.UcanaccessSQLException: data exception: invalid datetime format
マイデータベース:
'java.sql.Date'は、時間、分、秒を削除します。データベースにはDATEではなくDATETIMEがあります。 Javaタイムスタンプ?または、より良いJava 8クラスLocalDate、LocalDateTimeを使用することもできます。 –