Skip to content

auto conexion

Elizabeth Izquierdo edited this page Oct 6, 2026 · 5 revisions

🧠 Autoevaluación — Clase Conexion

Responde cada pregunta antes de ver la respuesta.


Pregunta 1

¿Por qué se crea una clase Conexion separada en lugar de escribir el código de conexión dentro de cada método del DAO?

  • A) Porque Java no permite escribir código de conexión en los DAOs
  • B) Porque la clase Conexion es obligatoria para que JDBC funcione
  • C) Para centralizar los parámetros de conexión en un solo lugar y evitar repetición de código
  • D) Para que el Servlet pueda acceder directamente a la base de datos
Ver respuesta

✅ C) Para centralizar los parámetros de conexión en un solo lugar y evitar repetición de código

💡 Sin la clase Conexion, cada método del DAO repetiría la URL, usuario y contraseña. Si la contraseña cambia, habría que buscarla y cambiarla en 10 lugares. La clase Conexion lo centraliza.


Pregunta 2

¿Qué es el archivo db.properties y por qué se usa?

  • A) Un archivo de configuración que almacena las credenciales de la BD fuera del código Java
  • B) Un archivo de estilos CSS para las páginas de la aplicación
  • C) El archivo principal de configuración de Tomcat
  • D) Un archivo de Maven que define las dependencias del proyecto
Ver respuesta

✅ A) Un archivo de configuración que almacena las credenciales de la BD fuera del código Java

💡 Si las credenciales estuvieran en el .java, aparecerían en el repositorio de GitHub. En un .properties separado, se pueden excluir del repositorio. Además, para cambiar la contraseña no hay que recompilar.


Pregunta 3

¿Qué es el patrón Static Factory Method y cómo lo aplica la clase Conexion?

  • A) Un patrón que crea automáticamente la base de datos
  • B) Un patrón de diseño exclusivo de Maven
  • C) Un método que crea múltiples instancias de Conexion en paralelo
  • D) Un método static que crea y devuelve objetos sin usar new desde fuera de la clase
Ver respuesta

✅ D) Un método static que crea y devuelve objetos sin usar new desde fuera de la clase

💡 Conexion.obtener() es un método estático que devuelve un objeto Connection. El DAO lo llama sin crear una instancia de Conexion, simplificando el código: Connection con = Conexion.obtener();


Pregunta 4

¿Qué información contiene una URL JDBC como jdbc:mysql://localhost:3306/escuela?

  • A) Solo el nombre de la base de datos
  • B) El protocolo (jdbc:mysql), el servidor (localhost), el puerto (3306) y el nombre de la BD (escuela)
  • C) El nombre de usuario y la contraseña
  • D) La versión de MySQL instalada en el servidor
Ver respuesta

✅ B) El protocolo (jdbc:mysql), el servidor (localhost), el puerto (3306) y el nombre de la BD (escuela)

💡 La URL JDBC tiene esta estructura: jdbc:[subprotocolo]://[servidor]:[puerto]/[baseDatos]?[parámetros]. Cada parte es necesaria para que el driver de MySQL localice y se conecte a la base de datos correcta.


Pregunta 5

¿Qué ventaja tiene try-with-resources al usar la conexión en el DAO?

  • A) Hace las consultas SQL más rápidas
  • B) Convierte automáticamente los resultados de SQL a objetos Java
  • C) Permite hacer múltiples conexiones simultáneas
  • D) Cierra automáticamente la conexión, PreparedStatement y ResultSet al salir del bloque, incluso si hay un error
Ver respuesta

✅ D) Cierra automáticamente la conexión, PreparedStatement y ResultSet al salir del bloque, incluso si hay un error

💡 Sin try-with-resources, si ocurre una excepción, la conexión podría no cerrarse nunca (memory leak). Con try-with-resources, Java llama a close() automáticamente al salir del bloque try.


Pregunta 6

¿Por qué no se deben hardcodear las credenciales de la base de datos directamente en el código Java?

  • A) Porque si el código se sube a GitHub u otro repositorio, las credenciales quedan expuestas públicamente
  • B) Porque Java no permite strings con caracteres especiales como @ o #
  • C) Porque Tomcat no puede leer strings hardcodeados
  • D) Porque el compilador de Java lo prohíbe
Ver respuesta

✅ A) Porque si el código se sube a GitHub u otro repositorio, las credenciales quedan expuestas públicamente

💡 Las credenciales en el código son un problema de seguridad clásico. Usando db.properties y excluyendo ese archivo del repositorio (con .gitignore), las credenciales no se exponen al subir el código.


Pregunta 7

¿Para qué sirve el parámetro useSSL=false en la URL JDBC?

  • A) Para deshabilitar la autenticación de usuarios en MySQL
  • B) Para permitir conexiones remotas a la base de datos
  • C) Para desactivar SSL en entornos de desarrollo y evitar advertencias de certificado
  • D) Para usar la versión anterior de MySQL
Ver respuesta

✅ C) Para desactivar SSL en entornos de desarrollo y evitar advertencias de certificado

💡 En desarrollo local, no necesitamos cifrado SSL. Sin useSSL=false, el driver de MySQL muestra advertencias molestas o errores de certificado. En producción real, sí debería activarse SSL.


🏠 Volver al índice


← Volver a Clase Conexion · 🏠 Inicio

Clone this wiki locally