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:
-
Arregle su código para que no importe ninguna clase de implementación de MySQL. Utilice el
java.sql.*
yjavax.sql.*
clase en su lugar. -
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). -
Si su código (aún) usa
Class.forName
para cargar el controlador JDBC, cámbielo para usarjava.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.