从Java更新MySQL DB中的时间字段

时间:2012-01-18 10:44:39

标签: java mysql time

我需要从Java更新MySQL数据库。特别是,我需要更新名为'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;

如果使用JAVA,如何在String中使用符号"来编写UPDATE语句?

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

3 个答案:

答案 0 :(得分:1)

使用单引号

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

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

答案 1 :(得分:1)

避免依赖数据库使用时间的外部表示,这可能因数据库,语言环境和设置而异。相反,请使用预先准备好的声明:

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();

这可能看起来像是时间的细节,但是当你必须使用日期或时间戳时,它将变得更加重要。

答案 2 :(得分:1)

已使用\"

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