java插入查询(mySQLNetbeans)返回错误消息
我在mySQL中创建了下表(待办事项): td_id(int)、td_日(int)、td_月(int)、td_年(int)、to_do(varchar)、td_done(boolean)
td_id字段设置为自动递增模式
在NetBeans中运行以下代码时,我收到一个错误,上面写着“字段列表中的未知列‘新年派对’”
有人能告诉我如何让代码工作吗? 提前谢谢
Connection conn1;
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/myproject?" +
"user=root&password=abcd";
conn1 = DriverManager.getConnection(url);
int datevar=31,monthar3=12,yearvar1=2012;
String data=”new year party”;
String strSQL = "INSERT INTO to_do(td_day,td_month,td_year,to_do,td_done) VALUES (“+datevar1+","+monthvar3+","+yearvar1+","+data+",0)";
Statement stmt1 = conn1.createStatement();
int StringrowsEffected = stmt1.executeUpdate(strSQL);
conn1.close();
}
catch ( Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
# 1 楼答案
字符串常量(由于要将查询字符串连接在一起,所以您将使用该常量)需要在SQL中的任何地方使用单引号。您的查询在试图为
to_do
列插入值的点周围没有单引号,因此它会失败。如果您能看到新添加的引号,正确的代码如下:# 2 楼答案
假设只有数字字段,您的第一个双引号(
VALUES (“+datevar1+
)看起来不正常。请更正如下:如果其中任何字段是文本类型,则将相应的值也用单引号(
'
)括起来例如,如果
to_do
是文本类型