每当我执行以下查询时,都会引发以下异常


  引起原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的'-name,cpy-address,cpy-contact)VALUES('nauman','ahmad18',12)'附近使用


查询导致异常的

  String query="insert into company(cpy-name, cpy-address, cpy-contact)VALUES(?,?,?)";
   Connection con=DataAccessLayer.getConnection();

   PreparedStatement stat=con.prepareStatement(query);
   stat.setString(1, cname);
   stat.setString(2, caddress);
   stat.setInt(3,x );
   int rowsAffected = stat.executeUpdate();

最佳答案

您不能在SQL查询中使用-。使用`反引号或反勾字符转义列名称。

insert into company(`cpy-name`, `cpy-address`, `cpy-contact`)VALUES(?,?,?)


另一方面,如果数据库在您的控制之下,请更改列名称以使用“ _”而不是“-”。拥有非法字符并引用它们不是一个好习惯。
希望这可以帮助!

关于java - 以下查询导致MySQLSyntaxErrorException-我的查询出了什么问题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37507603/

10-11 02:44