我的jdbc驱动程序出现此错误。我不知道为什么,等等。
以下是相应的代码:
try {
String colNames = " ";
for (int i=0; i<cols.size(); i++) {
if (i == cols.size()-1) {
colNames += cols.get(i);
} else if (i<cols.size()) {
colNames += cols.get(i)+", ";
}
}
String colValues = " ";
for (int i=0; i<values.size(); i++) {
if (i == values.size()-1) {
colValues += values.get(i);
} else if (i<values.size()) {
colValues += values.get(i) + ", ";
}
}
System.out.println(
"INSERT INTO `" + tableName + "` (" + colNames + ") VALUES (" + colValues + ") "
);
//System.out.println(kerdojel);
PreparedStatement pst = connHandler.conn.prepareStatement
("INSERT INTO `" + tableName + "` (" + colNames + ") VALUES (" + colValues + ") ");
pst.executeUpdate();
pst.close();
}
“values”和“cols”是包含JTable数据的ArrayLists。 cols是列名,值是单元格值。
Sysout的输出:
INSERT INTO `TableOne` ( nev, kor, lakhely) VALUES ( asd, 1, asd)
错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'asd' in 'field list'
答案 0 :(得分:2)
这不是income.ttest
的意图。使用PreaparedStatement
时,可以使用“set”方法之一指定值。
以下是一个例子:
PreparedStatement
您应该根据列的数据类型(String colNames = " ";
String colValues = " ";
for (int i=0; i<cols.size(); i++) {
if(i!=0){
colNames += ", ";
colValues += ", ";
}
colNames += cols.get(i);
colValues += "?";
}
try (PreparedStatement pst = connHandler.conn.prepareStatement("INSERT INTO `" + tableName + "` (" + colNames + ") VALUES (" + colValues + ") ");){
for (int i = 0; i < values.size(); i++) {
pst.setString(i+1,values.get(i));
}
pst.executeUpdate();
}
,setInt(...)
等)使用适当的“设置”方法。您可以找到更多详细信息here
答案 1 :(得分:0)
尝试使用这样的命令来检查存在的问题。
PREPARE mycmd FROM 'INSERT INTO TableOne(nev,kor) VALUES (?, ?)'