Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

não é possível encontrar o símbolo PreparedStatement após a atualização do JAR


com.mysql.jdbc.PreparedStatement é uma classe interna do driver MySQL 5.x JDBC. Seu código não deve importá-lo. Deve estar usando o padrão java.sql.PreparedStatement classe em vez disso.

Os nomes dos pacotes mudaram nos drivers MySQL 8.x JDBC, e foi isso que fez com que seu código começasse a dar erros de compilação.

Solução:

  1. Corrija seu código para que ele não importe nenhuma classe de implementação do MySQL. Use o java.sql.* e javax.sql.* classe em vez disso.

  2. Altere as dependências do projeto para que o JAR do driver MySQL não seja uma dependência de tempo de compilação. Fazer isso causará qualquer acidental dependências de código-fonte em drivers JDBC a serem sinalizadas como erros de compilação. Isso também impedirá que seu IDE faça sugestões incorretas para import declarações. (Meu palpite é que foi assim que a importação falsa entrou em sua base de código.)

  3. Se o seu código (ainda) estiver usando Class.forName para carregar o driver JDBC, altere-o para usar java.sql.DriverManager em vez de; consulte javadoc . Dessa forma, você não será queimado por outra alteração no nome da classe do driver MySQL.