我正在研究 Gaddis Java 教科书中的一个实验室,我正在尝试使用一个变量来表示球队名称,将一个条目插入到运动队的 T-SQL 数据库表中。
代码
do
{
// ADD LINES FOR TASK #3 HERE
// Prompt the user for a new team name
System.out.println("Enter new team name: ");
teamName = keyboard.nextLine();
// Update the Teams table
String sqlStatement = "INSERT INTO Teams" +
"VALUES " + teamName + ", 0, 0, 0";
int rows = stmt.executeUpdate(sqlStatement);
System.out.print("Do you want to enter " +
"another team: ");
ans = keyboard.nextLine().charAt(0);
} while(ans == 'Y'|| ans == 'y');
当输入值 Braves
时,出现错误 Incorrect syntax near 'Braves'。
在此先感谢您提供的所有帮助!
更新 01
感谢反馈,我更新了我的 SQL 语句,并指定了列名以确保顺序正确。
// Update the Teams table
String sqlStatement = "INSERT INTO Teams" +
"(TeamName, Wins, Losses, Ties)" +
"VALUES (" + teamName + " , 0, 0, 0)";
int rows = stmt.executeUpdate(sqlStatement);
但是,现在出现错误 ERROR: Invalid column name 'Braves'.
当出现提示时输入 Braves
。我不明白为什么要将变量 teamName
指定为值。
已解决
感谢@MrLY,我已经解决了这个问题!感谢其他所有提供帮助的人!
最佳答案
问题出在你的查询上
String sqlStatement = "INSERT INTO Teams" +"VALUES " + teamName + ", 0, 0, 0";
int rows = stmt.executeUpdate(sqlStatement);
你的插入查询应该是这样的:
INSERT INTO Teams VALUES(att1, att2, att3, ...);
所以把你的查询改成这样:
String sqlStatement = "INSERT INTO Teams " +"VALUES( " + teamName + ", 0, 0, 0)";
如果你想插入一个特定的属性,那么你应该像这样创建你的查询:
String sqlStatement = "INSERT INTO Teams(att1, att2, att2, att2) " +"VALUES( " + teamName + ", 0, 0, 0)";
编辑
你的字符串应该在两个'my string'
之间,所以你的查询现在应该是这样的:
String sqlStatement = "INSERT INTO Teams" +
"(TeamName, Wins, Losses, Ties)" +
"VALUES ('" + teamName + "' , 0, 0, 0)";
注意
我建议使用prepared statement,它比这种方式更有用也更安全
您可以了解更多关于 PreparedStatement 的信息
关于java - 在 Java 中使用变量将值插入到 SQL 数据库表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41088221/