获取 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 语法

Posted

技术标签:

【中文标题】获取 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 语法【英文标题】:Getting com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL syntax 【发布时间】:2012-12-22 06:23:57 【问题描述】:
do 
 
String mid=res.getString(1); 
String model=res.getString(2); 
String name=res.getString(3); 
int price=res.getInt(4); 
String pcolor=res.getString(5); 
String imei=res.getString(6); 
java.sql.Date date=res.getDate(7);
String access=res.getString(8); 

if(id.equals(mid) || id.equals(imei)) 
 
System.out.println("iam inside"); 
PreparedStatement prp=con2.prepareStatement("insert into msearch values(?,?,?,?,?,?,?,?)"); 
prp.setString(1,mid); 
prp.setString(2,model); 
prp.setString(3,name); 
prp.setInt(4,price); 
prp.setString(5,pcolor); 
prp.setString(6,imei); 
prp.setDate(7,date); 
prp.setString(8,access); 

prp.executeUpdate(); 

System.out.println("iam inside2"); 
rows++; 
b=1; 
jTextField1.setText(""); 
 

while(res.next()); 

我是mysql新手

我正在尝试执行上面的代码,我得到了

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在第 1 行的 '' 附近使用正确的语法

应该是什么问题,请帮忙,

【问题讨论】:

你正在执行一个executeUpdate,难道不应该有executeQuery / executeInsert的等价物吗? @BryanMoyles No ExecuteInsert. 顺便说一句,您确实应该在 INSERT 中指定列名(即insert into table (c1, c2, ...) values (...)),不要依赖于任何特定顺序的列。 【参考方案1】:

像这样改变你的prepareStatement;

     insert into msearch (mid, model, name, price, pcolor, imei, date, access) values(?,?,?,?,?,?,?,?)

【讨论】:

以上是关于获取 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 语法的主要内容,如果未能解决你的问题,请参考以下文章

iOS ---------- 获取设备的各种信息

java反射获取属性值

Shell 获取路径

iOS 获取文件大小

根据日期字符串获取星期几,日期获取星期,时间获取星期,js获取星期

js如何获取时间点?