2012-11-10 84 views
0

我想插入一個java時間戳到msaccess數據庫中,但是我收到了下面列出的錯誤。 ms-access字段已被設置爲日期數據類型。任何意見將深表謝意。由於如何使用java將時間戳插入到Ms-Access中?

這裏是我的DAO類方法:

public void addSale(String saleDetails, String saleTotal, Timestamp saleTimestamp) 
         throws ClassNotFoundException, SQLException { 

    Statement myStatement = getConnection(); 
    String sql = "INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)" 
       + " VALUES ('"+saleDetails+"','"+saleTotal+"','"+saleTimestamp+")"; 

    myStatement.executeUpdate(sql); 
    closeConnection(); 

我的DTO方法:

public void storeSale(String saleDetails, String saleTotal, Timestamp saleTimestamp){ 
     DAO dao = DAO.getDAO(); 
     try { 
      dao.addSale(saleDetails, saleTotal, saleTimestamp); 
     } catch (ClassNotFoundException | SQLException ex) { 
      Logger.getLogger(Sale.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

我的時間戳方法:

public Timestamp addTimestamp(){ 
     java.util.Date date= new java.util.Date(); 
    return new Timestamp(date.getTime()); 
    } 

而且錯誤:

的java.sql .SQLException:[Microsoft ] [ODBC Microsoft Access Driver]查詢表達式中的字符串中的語法錯誤''2012-11-10 09:30:57.174)'。 在sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) 在sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) 在sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc。 Java的:3109) 在sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:337) 在sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:287)

回答

2

有語法錯誤的查詢。嘗試把你的單引號在saletimestamp

String sql = "INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)" 
       + " VALUES ('"+saleDetails+"','"+saleTotal+"','"+saleTimestamp+"')"; 
+0

嘿感謝Mob..getting另一個錯誤現在雖然結束: - 在條件表達式[微軟] [ODBC Microsoft Access驅動程序]數據類型不匹配。 – Adesh

+0

在這裏檢查http://stackoverflow.com/a/5768091/798818 – Mob