我需要从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
答案 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";