com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; che

问题描述:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? and password = ?' at line 1

在访问Mysql数据库的时候,出现了这种错误,问题代码如下:

 connection = this.getConnection(true);
            String sql = " select id, username, password, name, account_type, account_status from account where username = ? and password = ?";
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1,username);
            preparedStatement.setString(2,DigestUtils.md5Hex(password));

            //获取结果
            resultSet = preparedStatement.executeQuery(sql);

 

执行结果:

问题1:检查sql 语句,看看是否语句有问题,最好的方法就是直接复制到命令行去检测,看看能否执行成功,常见问题是符号写成中文的,其次就是语句中的属性名称和自己数据库所建立的表的名称不同,所以需要仔细检查。

问题2:在上面代码中,有两行代码的功能相同,如下:

1.

preparedStatement = connection.prepareStatement(sql);

2.

resultSet = preparedStatement.executeQuery(sql);

问题在于在第二个代码的方法中,应该调用的是无参方法(如下)。所以将2代码换位3代码之后,问题就得到了解决。

3.

resultSet = preparedStatement.executeQuery();

修改解决问题之后:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; che_第1张图片

以上这些都是笔者自己在做项目时候所遇到的问题,分享给大家希望对大家有所帮助,大家一起加油冲鸭!!!

你可能感兴趣的:(项目,You,have,an,error,in,your,SQL,check,the,manual,that,correspo)