gpt4 book ai didi

java - 来自 Java 的 MySQL 数据库查询失败

转载 作者:行者123 更新时间:2023-11-29 05:26:04 26 4
gpt4 key购买 nike

我在 MySQL 中有这个表:

CREATE TABLE CanteenMan.Foods (
id TINYINT PRIMARY KEY AUTO_INCREMENT,
type ENUM("soup","main","desert") DEFAULT "soup",
name VARCHAR(30) NOT NULL,
price FLOAT NULL DEFAULT NULL
)ENGINE = INNODB;

所以如果我想插入新食物,我应该这样做:

INSERT INTO Foods(id,type,name,price)
VALUES(NULL,"soup","somename",3.3);

这是我现在的问题...我正在使用 JDBC 在表中添加新食物:

public void addFood(Meal f) throws ClassNotFoundException, SQLException {

Class.forName (dbid.driver);
Connection c = (Connection) DriverManager.getConnection(dbid.url,dbid.user,dbid.pass);
PreparedStatement ps = (PreparedStatement) c.prepareStatement("INSERT INTO foods(id,type,name,price"
+ "VALUES(NULL,?,?,?)");
ps.setString(1,f.getType()); // here throws SQLException
ps.setString(2, f.getName());
ps.setFloat(3,f.getPrice());

int rowsInserted = ps.executeUpdate();

System.out.println("Rows inserted:"+rowsInserted);
}

但这会抛出 SQL Exception 因为 MySQL 想要这里

+ "VALUES(NULL,?,?,?)");

用“”包围这些值。是否有任何方法可以使这个查询被 MySQL 服务器接受?

最佳答案

sql 语句缺少列列表的右括号。

PreparedStatement ps = 
(PreparedStatement) c.prepareStatement("INSERT INTO foods(id,type,name,price) "
+ "VALUES(NULL,?,?,?)");

请注意,在列出价格列后,我插入了 )

关于java - 来自 Java 的 MySQL 数据库查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20160270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com