Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

521
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda