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

Qual é a diferença entre o pacote com.mysql.jdbc.PreparedStatement; e java.sql.PreparedStatement?


Porque ambas as classes estavam presentes em seu caminho de classe de tempo de compilação e seu IDE estava tentando ser útil.

Porque prepareStatement() é especificado para retornar java.sql.PreparedStatement , não com.mysql.jdbc.PreparedStatement .

O java.sql.PreparedStatement é uma interface e você deve usar isso o tempo todo. O MySQL é uma implementação concreta e você não deve estar acoplando seu código JDBC com a implementação específica do MySQL. Caso contrário, você teria que fazer muitas alterações em seu código se quiser mudar o servidor de banco de dados (e, portanto, também o driver JDBC) para um fornecedor diferente, como o PostgreSQL. Se você estiver usando as interfaces JDBC padrão de java.sql pacote o tempo todo, tudo o que você precisaria alterar seria apenas a URL JDBC e talvez também o nome de usuário e a senha e algumas instruções SQL específicas do banco de dados.

Veja também: