Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

513
Visualizações
no se puede encontrar el símbolo PreparedStatement después de la actualización JAR

Acabo de actualizar mysql jdbc connection JAR (de mysql-connector-java-5.0.5.jar a mysql-connector-java-8.0.19.jar) y el proyecto comenzó a mostrar errores para las declaraciones de importación:

 import com.mysql.jdbc.PreparedStatement; java: cannot find symbol symbol: class PreparedStatement location: class package.ClassName

¿Dónde encontrar la ubicación o el paquete para PreparedStatement en el nuevo archivo jar o se reemplaza con cualquier otra clase en el nuevo JAR?

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

com.mysql.jdbc.PreparedStatement es una clase interna del controlador JDBC de MySQL 5.x. Tu código no debería importarlo. Debería usar la clase estándar java.sql.PreparedStatement en su lugar.

Los nombres de los paquetes han cambiado en los controladores JDBC de MySQL 8.x, y eso es lo que provocó que su código comenzara a generar errores de compilación.

Solución:

  1. Arregle su código para que no importe ninguna clase de implementación de MySQL 1 . Utilice la clase java.sql.* y javax.sql.* en su lugar.

  2. Cambie las dependencias de su proyecto para que el JAR del controlador MySQL no sea una dependencia en tiempo de compilación. Si lo hace, cualquier dependencia accidental del código fuente en los controladores JDBC se marcará como errores de compilación. También evitará que su IDE haga sugerencias incorrectas para declaraciones de import . (Supongo que así es como la importación falsa entró en su base de código).

  3. Si su código (todavía) usa Class.forName para cargar el controlador JDBC, cámbielo para usar java.sql.DriverManager en su lugar; ver javadoc . De esa manera, no se quemará con otro cambio en el nombre de la clase del controlador MySQL.


1 - Su código Java no debería depender de las API específicas de MySQL. Hasta donde yo sé, las clases de implementación de MySQL reflejan las API estándar de JDBC, por lo que no gana nada usándolas directamente. Esto no es cierto para todos los proveedores.

over 4 years ago · Santiago Trujillo Relatório

0

Intenta reemplazarlo con:

 import java.sql.PreparedStatement;

El uso com.mysql.jdbc.PreparedStatement es específico de mysql y no debe importarse directamente.

Entonces, a menos que necesite funciones específicas de MySQL, siempre es mejor usar la interfaz java.sql.PreparedStatement que es independiente de la base de datos. Véase también esto .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda