Entiendo que la carga de clase es útil para cargar la clase en tiempo de ejecución con su nombre de clase.¿Cuál es el propósito de 'Class.forName ("MY_JDBC_DRIVER")'?
Sin embargo, mientras usamos JDBC en nuestro proyecto, sabemos qué controlador vamos a utilizar y, en su mayoría, la cadena del administrador de controladores está codificada.
Mi pregunta es: ¿Por qué estamos cargando el controlador usando Class.forName("JDBC_DRIVER")
aquí?
¿Por qué no podemos continuar agregando el controlador en la ruta de clase? ya que sabemos qué contenedor de controladores vamos a usar.
Creo que Class.forName(JDBC_DRIVER)
cargará el controlador en DriverManager
. ¿Es la única razón?
Editar 1:
Los DriverManager
API doc estados que
Como parte de su inicialización (DriverManager), la clase DriverManager intentará cargar las clases controlador de referencia en las "jdbc.drivers" propiedad del sistema.
Las aplicaciones ya no necesitan cargar explícitamente los controladores JDBC usando
Class.forName()
. Los programas existentes que actualmente cargan controladores JDBC usandoClass.forName()
continuarán funcionando sin modificaciones.
Luego cuando uso otro que el controlador oracle; ¿Necesito cambiar la cadena del nombre del controlador en la propiedad del sistema?
Grupo, gracias. Ahora entiendo que class.forName() es útil para cargar una clase en comparación con otros mecanismos, como llamar a su método estático o crear una instancia de esa clase. De esta forma podemos asegurarnos de ejecutar algunas funcionalidades solo una vez usando el bloque estático durante la carga. –