0

java タイムスタンプを msaccess データベースに挿入したいのですが、以下に示すエラーが発生します。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) で

4

1 に答える 1

2

クエリに構文エラーがあります。末尾に一重引用符を付けてみてくださいsaletimestamp

String sql = "INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)"
                + " VALUES ('"+saleDetails+"','"+saleTotal+"','"+saleTimestamp+"')";
于 2012-11-10T13:52:16.353 に答える