저는 Java를 사용하여 CSV 파일의 일부 레코드를 저장하고 있습니다. 이러한 레코드 중 하나가 날짜입니다. 여기서 문제는 JDBC를 사용하여 이러한 레코드를 데이터베이스에 저장하는 것입니다. 이제 Java의 Date 객체가 데이터베이스에 데이터를 삽입하는 동안 오류를 표시합니다. 나는 이것에 잠시 붙어있다. 이 문제를 해결하는 방법을 알려주십시오. 나는 날짜를 데이터베이스에 저장하기 위해 mysql에 사용했다. 다음은 문제를 만드는 부분입니다.JDBC 날짜와 SQL 날짜
DateFormat d1 = new SimpleDateFormat("yyyy-MM-dd");
Date d = new Date();
System.out.println(d1.format(d));
String sql = "INSERT INTO TESTING"+
"VALUES("+"DATE_FORMAT("+d+","+"'%Y-%m-%d'"+"))";
stmt.executeUpdate(sql);
MySqlWorkBench에서 직접 실행하면 날짜가 올바르게 저장됩니다. 그러나 JDBC를 통해 문제가된다.
오류
은 아래와 같습니다 :com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Jun 30 14:04:03 IST 2016,'%Y-%m-%d'))' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317)
at payex.writeDB(payex.java:221)
at payextestdrive.main(payextestdrive.java:11)
"데이터베이스에 퍼팅하면서 이제 자바의 Date 객체가 에러를 보여주고있다"또한 공간은 테이블 이름과
VALUES
사이에 누락 된? 문자열 연결을 사용하는 것은 * 올바른 해결책이 아닙니다 * PreparedStatement를 절대적으로 사용해야하지만 java.util.Date가 아닌 java.sql.Date를 사용해야합니다. –이 게시물도 참조 할 수 있습니다. http://stackoverflow.com/questions/2305973/java-util-date-vs-java-sql-date – shazinltc
"INSERT INTO TESTING"+ "VALUES ..." work – wero