在服务器中部署后出现错误的SQL语法异常

时间:2017-10-14 09:56:09

标签: java mysql spring-mvc badsqlgrammarexception

我正在使用MySql,Spring MVC。

当我在我的计算机上运行我的代码(localhost)时,它可以正常运行 。但在远程服务器上部署后,它显示错误的SQL语法异常

以下是我的远程服务器数据库自定义错误的屏幕截图。 (来自phpMyAdmin的截图)

enter image description here

以下是text formate中的错误:

  

PreparedStatementCallback;错误的SQL语法[插入匹配(id,   title,location,number_of_players,over,team1,team2,toss,status,   结果,team_init,match_end,match_started,match_views,bookmarked,   公告,锦标赛,create_date,start_date,active_date,   asst_scorer,start_date_string)值(?,?,?,?,?,?,?,?,?,?,   ?,?,?,?,?,?,?,?,?,?,?,?)];嵌套异常是   com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   MariaDB服务器版本,用于在team1附近使用正确的语法,   team2,toss,status,result,team_init,match_end,match_started,m'   在第1行

这是我在MySql表中插入数据的Java代码

public boolean createMatch(Match match) {

    BeanPropertySqlParameterSource params = new BeanPropertySqlParameterSource(match);

    return jdbc.update(
        "insert into matchs (id, title, location, number_of_players, over, team1, team2, toss, status, result, team_init, match_end, match_started, match_views, bookmarked, announcement, tournament, create_date, start_date, active_date, asst_scorer, start_date_string) values (:id, :title, :location, :number_of_players, :over, :team1, :team2, :toss, :status, :result, :team_init, :match_end, :match_started, :match_views, :bookmarked, :announcement, :tournament, :create_date, :start_date, :active_date, :asst_scorer, :start_date_string)",
        params) == 1;
}

1 个答案:

答案 0 :(得分:3)

OVER是MariaDB关键字: https://mariadb.com/kb/en/library/window-functions-overview/

将该列重命名为其他内容。我还强烈建议您在所有环境中使用相同的数据库,否则您的测试将检测生产中不会发生的错误,或者不会检测生产中发生的错误。