Обновление поля времени в MySQL DB с Java - PullRequest
0 голосов
/ 18 января 2012

Мне нужно обновить БД MySQL с Java.В частности, мне нужно обновить поле времени, называемое «t_field».

CREATE TABLE IF NOT EXISTS `TimeTest` (
  `id` SMALLINT NOT NULL AUTO_INCREMENT,
  `t_field` TIME NOT NULL,
  `resQty` INT(3)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Как я могу использовать символ " в строке для записи оператора UPDATE, если JAVA?

String query = "UPDATE TimeTest SET t_field = "00:05" WHERE id=1"; // sure, it does not work

Ответы [ 3 ]

1 голос
/ 18 января 2012

Старайтесь не полагаться на внешнее представление времени, используемого вашей базой данных, которое может варьироваться в зависимости от базы данных, локали и настроек.Вместо этого используйте подготовленное утверждение:

String query = "update TimeTest set t_field = ? where id = 1";
PreparedStatement stmt = cnx.prepareStatement(query);
Time time = Time.valueOf("00:05:00");
stmt.setTime(1, time);
stmt.executeUpdate();

Это может выглядеть как деталь для времен, но когда вам придется делать это с датами или временными метками, это станет гораздо более важным.

1 голос
/ 18 января 2012

Используется \"

String query = "UPDATE TimeTest SET t_field = \"00:05\" WHERE id=1";
1 голос
/ 18 января 2012

используйте одинарные кавычки

String query = "UPDATE TimeTest SET t_field = '00:05' WHERE id=1";

или

String query = "UPDATE TimeTest SET t_field = \"00:05\" WHERE id=1";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...