Я использую Java для хранения некоторых записей из файла csv. Одна из этих записей - это дата. Проблема здесь в том, что я использую JDBC для хранения этих записей в базе данных. Теперь объект Date 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)
«Теперь, объект Дата Java показывает ошибку, помещая его в базу данных» - Какие ошибки? Использование конкатенации строк - это * не * правильное решение здесь ... вы должны абсолютно использовать PreparedStatement, но вам нужно использовать 'java.sql.Date', а не' java.util.Date'. –
Вы можете ссылаться на этот пост тоже http://stackoverflow.com/questions/2305973/java-util-date-vs-java-sql-date – shazinltc
'' INSERT INTO TESTING "+" VALUES ... 'не может work – wero