2011-09-07 63 views
-3

我想從我的Java程序插入一個日期字符串到我的MySQL數據庫字段之一有一個日期類型。如何插入一個字符串日期到一個MySQL數據庫日期字段

package events; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 
import java.util.Date; 
/** 
* 
* @author mewq 
*/ 
public class ConDb { 
public static void main(String[] args){ 
String description = null; 
try{ 
Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/tangkilikan", "user=root", "password=tangkilik"); 

Statement stat = (Statement) conn.createStatement(); 

String eventName = "Imba meeting"; 
String Address = "Zamora, Cabarroguis, Quirino"; 
Date date = '2011-09-09'; 
String description = "meeting"; 


String insert = "insert into events values ('" + eventName + "', '" + Address + "', ' + date + ', '" + description + "')"; 


stat.executeUpdate(insert); 

} catch(Exception e) { 

} 

} 

} 
+0

後的你在做什麼的例子,你會遇到的錯誤。 –

+0

請發佈您的代碼,以便我們可以確切地看到您在做什麼。 – Carl

回答

2

嘗試使用SimpleDateFormat

DateFormat formatter = new SimpleDateFormat("MM/dd/yy"); 
Date date = (Date)formatter.parse("05/15/11"); 

,然後用這個日期插入。

0

MySQL的日期時間格式爲 '2013-01-01 01:00:00' 或YYYY-MM-DD HH:MM:SS確保您有引號或蜱..

- >嘗試將該日期對象轉換爲字符串。

最好我可以做沒有更多的信息。

2

作爲慣例,您的變量/字段/成員名稱不應以大寫字母開頭,因此Address實際上應該是address

至於你的問題,在你發佈的代碼中創建insert字符串存在問題;你不是要串連您date前場結束用雙引號(「)的字符串,所以你不會與你期望的字符串結束試試下面的不是:

String insert = "insert into events values ('" + eventName + "', '" + Address + "', '" + date + "', '" + description + "')"; 
4
Date date = '2011-09-09'; 

將無法​​編譯,正確的方法插入日期與日期類型的數據庫表是使用PreparedStatement

String dateString = "2011-09-09"; 
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); 
Date myDate = formatter.parse(dateString); 

String insert = "insert into events values (?, ? , ? , ?)"; 
PreparedStatement ps = conn.prepareStatment(insert); 
ps.setString(1, eventName); 
ps.setString(2, Address); 
ps.setDate(3, myDate); 
ps.setString(4, description); 

ps.executeUpdate(); 
相關問題