您的SQL语法有错误;检查对应的手册 到您的MariaDB服务器版本,以便在'1,2,3,4附近使用正确的语法 第1行的值('2017-01-11','P','P','P','A')
错误可能在insertColumn
和insertValue
变量中。我无法正确使用语法。可能我可能会遗漏变量中的一些引号,但我不知道在哪里。我在网上提到了不同的来源,但尝试失败了。 columnNames
是包含所有列的列表。
String insertColumns = "";
String insertValues = "";
if(columnNames != null && columnNames.size() > 0){
insertColumns += columnNames.get(0);
insertValues += "?";
}
for(int i = 1; i < columnNames.size();i++){
insertColumns += "," + columnNames.get(i) ;
insertValues += ","+"?";
}
System.out.println(insertColumns);
String insertSql;
//Here is where the problem lies
insertSql = "INSERT INTO os ("+ insertColumns+") values (" + insertValues +
")";
System.out.println(insertSql);
try{
PreparedStatement ps = conn.prepareStatement(insertSql);
ps.setDate(1, sqlStartDate);
for(int i=1;i<=no_of_stud;i++){
int j=i+1;
int k=i-1;
ps.setString(j, present[k]);
}
答案 0 :(得分:0)
根据:https://mariadb.com/kb/en/library/identifier-names/
标识符名称可以以数字开头,但除非引用,否则不能包含数字。
所以代替:insertColumns += columnNames.get(i);
你应该:
这很有用。
insertColumns + =&#34;`&#34; + columnNames.get(i)+&#34;`&#34; ;
也是第一个if应该测试别的东西。例如:
if(columnNames == null || columnNames.size() <= 0){
return;
}