sql >> Base de Datos >  >> RDS >> Mysql

no se puede encontrar el símbolo PreparedStatement después de la actualización JAR

com.mysql.jdbc.PreparedStatement es una clase interna del controlador JDBC de MySQL 5.x. Tu código no debería importarlo. Debería estar usando el estándar java.sql.PreparedStatement clase 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. Utilice el java.sql.* y javax.sql.* clase 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. Hacer eso causará cualquier accidental las dependencias del código fuente en los controladores JDBC se marcarán como errores de compilación. También evitará que su IDE haga sugerencias incorrectas para import declaraciones. (Supongo que así es como la importación falsa entró en su base de código).

  3. Si su código (aún) usa Class.forName para cargar el controlador JDBC, cámbielo para usar java.sql.DriverManager en cambio; consulte javadoc . De esa forma, no se verá afectado por otro cambio en el nombre de la clase del controlador MySQL.