top 25 jdbc interview questions
Este tutorial proporciona preguntas frecuentes de entrevistas de JDBC y respuestas con explicaciones para ayudarlo a prepararse para la entrevista:
En el Procesamiento por lotes JDBC y procedimiento almacenado tutorial de la Serie de tutoriales de JDBC , aprendimos métodos para realizar procesamiento por lotes en Java usando el controlador JDBC y también aprendimos a crear procedimientos almacenados y llamarlos desde un programa Java.
JDBC es la forma abreviada que se utiliza habitualmente para la conectividad de bases de datos Java. Al usar JDBC, podemos interactuar con diferentes tipos de bases de datos relacionales como Oracle, MySQL, MS Access, etc.
Este artículo le ayudará a descifrar la entrevista de JDBC. Hemos explicado aquí todos los conceptos importantes de JDBC.
Preguntas frecuentes de la entrevista de JDBC
P # 1) ¿Qué es JDBC?
Responder: La conectividad de base de datos Java se conoce extraoficialmente como JDBC. Se utiliza para realizar operaciones de base de datos en la base de datos desde la aplicación Java. Admite la interacción con cualquier tipo de base de datos como Oracle, MySQL, MS Access, etc.
P # 2) ¿Cuál es el uso del controlador JDBC?
Responder: Es un componente de software y se utiliza para hacer que la aplicación Java interactúe con la base de datos.
P # 3) ¿Cuáles son los diferentes tipos de controladores en JDBC?
Responder: Hay 4 controladores JDBC diferentes en el mercado.
Son:
- Tipo i: JDBC - Puente ODBC
- Tipo II: API nativa - Half Java Driver
- Tipo III: Protocolo de red: controlador totalmente Java
- Tipo IV: Controlador delgado: controlador totalmente Java
Tipo I: Puente JDBC-ODBC
El puente JDBC-ODBC se comportará como una interfaz entre el cliente y el servidor de base de datos. El cliente debe colocar el controlador JDBC-ODBC en él. La base de datos debe admitir el controlador ODBC. Si no nos preocupa la instalación del controlador dentro del sistema cliente, usaremos este controlador.
Tipo II: API nativa: Half Java Driver
Es casi como un controlador JDBC-ODBC. En lugar de un controlador ODBC, usamos una API nativa aquí. Se utilizan bibliotecas de la base de datos del lado del cliente.
Tipo III: Protocolo de red
Funciona como un enfoque de 3 niveles para acceder a la base de datos. Se utilizará un servidor intermedio para conectarse a la base de datos. Las llamadas al método JDBC envían datos a un servidor intermedio y luego el servidor se comunicará con DB.
Tipo IV: controlador delgado
Está absolutamente escrito en Java. Convierte explícitamente las llamadas al método JDBC en el protocolo de base de datos específico del proveedor. Hoy en día, el propio comerciante de bases de datos proporciona este tipo de controlador para sus clientes. Entonces, los programadores no confían en otras fuentes. Ofrece un rendimiento más alto que los otros controladores.
Q #4) ¿Qué tipo de controlador JDBC utiliza la mayoría de las personas?
Responder: El controlador delgado de tipo IV se utiliza en la mayoría de las aplicaciones. Está desarrollado por el propio proveedor de la base de datos para que los desarrolladores puedan usarlo directamente sin depender de otras fuentes. Permite un desarrollo sencillo y sencillo. Ofrece un rendimiento más alto que los otros controladores.
P # 5) ¿Cuáles son los tipos de arquitectura JDBC?
Responder: JDBC admite 2 tipos de modelos de procesamiento para acceder a la base de datos.
Son:
- Arquitectura de dos niveles: Aquí los programas Java se conectan explícitamente con DB. No necesitamos ningún mediador como el servidor de aplicaciones para conectarse con DB, excepto el controlador JDBC. También se conoce como arquitectura cliente-servidor.
- Arquitectura de tres niveles: Es totalmente inverso a la arquitectura de dos niveles. No habrá comunicación explícita entre el controlador JDBC o el programa Java y la base de datos. Se utiliza un servidor de aplicaciones como mediador entre ellos. El programa Java enviará la solicitud a un servidor de aplicaciones, y el servidor la enviará y recibirá la respuesta a / desde DB.
P # 6) ¿Cuáles son los componentes de JDBC?
Responder: Hay 4 componentes principales que están disponibles en JDBC.
Son:
- API JDBC
- Administrador de controladores JDBC
- Conjunto de pruebas JDBC
- JDBC - Puente ODBC
P # 7) ¿Cuáles son los pasos para conectarse con JDBC?
Responder: Hay 6 pasos básicos para conectarse con DB en Java. Estos se enumeran a continuación:
- Importar paquete
- Controlador de carga
- Establecer conexión
- Creación y ejecución de la declaración
- Recuperar resultados
- Conexión cercana
P # 8) ¿Qué tipos de datos se utilizan para almacenar la imagen y el archivo en la tabla de la base de datos?
Responder:
- Tipo de datos BLOB se utiliza para almacenar la imagen en DB. Podemos almacenar videos y audios también en el tipo de datos BLOB. Se utiliza para almacenar datos de tipo binario.
- Tipo de datos CLOB se utiliza para almacenar el archivo en DB. Se utiliza para almacenar el tipo de carácter de datos.
P # 9) ¿Qué es DriverManager en JDBC?
Responder: DriverManager es una clase incorporada que está presente en el paquete java.sql. Se utilizará como mediador entre la aplicación Java y la base de datos, que estamos conectando / usando en nuestro código. Como primer paso, necesitamos registrar o cargar el controlador con DriverManager. Entonces, el controlador estará disponible para usar en la aplicación.
La función principal de DriverManager es cargar la clase de controlador de la base de datos y crear una conexión con DB.
Hay 2 formas de registrar o cargar el controlador:
- Class.forName ()
- DriverManager.registerDriver ()
P # 10) ¿Cuál es la diferencia entre las interfaces Statement y PreparedStatement?
Respuesta: La siguiente tabla explica las diferencias:
DECLARACIÓN | DECLARACIÓN PREPARADA |
---|---|
Se utilizará principalmente para ejecutar sentencias SQL estáticas. | Se utilizará principalmente para ejecutar sentencias SQL precompiladas. |
No aceptará parámetros en tiempo de ejecución. | Aceptará diferentes parámetros en tiempo de ejecución. |
Su rendimiento es menor en comparación con preparado | Su rendimiento es superior al de Statement ya que ejecuta las sentencias SQL precompiladas |
Es apropiado para ejecutar instrucciones DDL como CREATE, DROP, ALTER y TRUNCATE | Es apropiado para ejecutar declaraciones DML como INSERT, UPDATE y DELETE |
No se puede utilizar para almacenar o recuperar imágenes y archivos en la base de datos. | Se puede utilizar para almacenar o recuperar imágenes y archivos en DB |
Hace cumplir la inyección SQL | Evita la inyección de SQL |
Lectura sugerida = >> Declaración y declaración preparada de JDBC
Q #11) Explique la diferencia entre execute (), executeQuery () y executeUpdate ().
Responder:
ejecutar la solicitud() | executeUpdate () | Ejecutar() |
---|---|---|
Se utiliza para ejecutar las sentencias SQL que recuperan algunos datos de la base de datos. | Se utiliza para ejecutar las declaraciones SQL que actualizarán o modificarán los datos en la base de datos. | Se utiliza para ejecutar cualquier tipo de sentencias SQL. |
Devuelve el objeto resultSet | Devuelve un valor entero que representa el no. de filas afectadas | Devuelve un valor booleano VERDADERO: devuelve un objeto resultSet FALSO: devuelve un valor int o nada |
Se utiliza para ejecutar solo SELECT Query | Se usa para ejecutar solo una consulta que no es SELECT | Se utiliza para ejecutar consultas SELECT y no SELECT |
P # 12) ¿Cómo llamar a procedimientos almacenados en JDBC?
Responder: Podemos ejecutar los procedimientos almacenados de SQL a través de la interfaz CallableStatement. El objeto CallableStatement se puede crear utilizando el método prepareCall () de la interfaz Connection.
Q #13) ¿Qué es la interfaz ResultSet?
Responder: La interfaz ResultSet se utiliza para almacenar los datos de salida después de la ejecución de la consulta SQL. El objeto de ResultSet mantiene el punto del cursor en los datos del resultado. De forma predeterminada, el cursor apunta antes de la primera fila de los datos del resultado. También podemos recorrer los datos en los objetos del conjunto de resultados.
el mejor software de máquina virtual para Windows 10
Sintaxis:
Interfaz de declaración:
|_+_|Interfaz PreparedStatement:
|_+_|P # 14) ¿Cuáles son los tipos de ResultSet?
Responder: Hay 3 tipos en ResultSet. Estos son:
cuáles son todos los sitios de correo electrónico
- TYPE_FORWARD_ONLY: Es la opción predeterminada. El cursor se moverá de principio a fin.
- TYPE_SCROLL_INSENSITIVE: En este tipo, el cursor se moverá tanto hacia adelante como hacia atrás. El conjunto de datos tiene los datos cuando la consulta SQL devuelve los datos.
- TYPE_SCROLL_SENSITIVE: Es lo mismo que TYPE_SCROLL_INSENSITIVE, la diferencia es que tendrá los datos actualizados mientras itera el objeto del conjunto de resultados.
P # 15) ¿Cuáles son los modos de simultaneidad en ResultSet?
Responder: Hay 2 modos diferentes de concurrencia en ResultSet. Son:
- ResultSet.CONCUR_READ_ONLY : Es el modo de concurrencia predeterminado. Hay disponible una opción de solo lectura. La actualización no es posible.
- ResultSet.CONCUR_UPDATABLE: La actualización es posible.
P # 16) ¿Cómo verificar si la base de datos admite el modo de concurrencia?
Responder: Tenemos el método supportsResultSetConcurrency () que se usará para verificar si el tipo dado y los modos de concurrencia son compatibles con la base de datos o no.
Q #17) ¿Podemos obtener los datos de la fila en particular del conjunto de resultados?
Nota: ResultSet tiene los datos de un conjunto de filas
Responder: Sí, podemos obtener los datos de la fila en particular del resultSet usando el método relativo (). Moverá el cursor a la fila dada, ya sea hacia adelante o hacia atrás desde la fila actual. Si se ha dado el valor positivo, se moverá hacia adelante. Si se ha dado el valor negativo, se moverá hacia atrás.
P # 18) ¿Cuál es el uso de los métodos getter y setter en ResultSet?
Responder:
Métodos getter: Estos se utilizan para recuperar los valores de la columna particular de la tabla de ResultSet. El valor del índice de columna o el nombre de la columna deben pasarse como parámetro. Normalmente, representaremos el método getter como métodos getXXX ().
Ejemplo:
- int getInt (cadena Column_Name): Se utiliza para recuperar el valor de la columna especificada Index y el tipo de datos int como tipo de retorno.
Métodos de Setter: Podemos establecer el valor en la base de datos utilizando los métodos de establecimiento de ResultSet. Es similar a los métodos getter, pero aquí necesitamos pasar los valores / datos de la columna en particular para insertar en la base de datos y el valor del índice o el nombre de la columna de esa columna. Normalmente representaremos el método setter como métodos setXXX ().
Ejemplo:
- setInt vacío (int Column_Index, int Data_Value): Se utiliza para insertar el valor de la columna Index especificada con un valor int.
P # 19) ¿Cuál es el propósito principal de la interfaz ResultSetMetaData?
Responder: Esta interfaz brinda más información sobre ResultSet. Cada objeto ResultSet se ha asociado con un objeto ResultSetMetaData.
Este objeto tendrá los detalles de las propiedades de las columnas como el tipo de datos de la columna, el nombre de la columna, el número de columnas en esa tabla, el nombre de la tabla, el nombre del esquema, etc., el método getMetaData () del objeto ResultSet se usa para crear el ResultSetMetaData objeto.
Sintaxis:
|_+_|P # 20) ¿Qué es DatabaseMetaData?
Responder: La interfaz DatabaseMetaData brinda información sobre la base de datos que estamos usando. Obtendremos la siguiente información: nombre de la base de datos, versión de la base de datos, etc.
P # 21) ¿Qué es la propiedad ACID?
Responder:
- A – Atomicidad -> Si todas las consultas se han ejecutado correctamente, los datos se confirmarán; de lo contrario, no se confirmarán.
- C – Consistencia -> Los datos deben ser consistentes después de cualquier transacción.
- I – Aislamiento -> Cada transacción debe estar aislada.
- D – Durabilidad -> Si la transacción se confirma una vez, debería estar disponible siempre (si no se han producido cambios)
P # 22) ¿Cómo cambiar el valor del modo de confirmación automática?
Responder: De forma predeterminada, el valor de AutoCommit es TRUE. Después de la ejecución de la instrucción SQL, se confirmará automáticamente. Usando el método setAutoCommit (), podemos cambiar el valor a AutoCommit.
P # 23) ¿Cuál es el uso de los métodos Commit y Rollback?
Responder:
Método de compromiso (): Tenemos el método commit () en Java para confirmar los datos. Una vez que se realiza la ejecución de SQL, podemos llamar al método de confirmación.
Sintaxis: connectionobj.commit ();
Método Rollback (): Tenemos el método rollback () en Java para revertir los datos. Revertir significa deshacer los cambios. Si falla alguna de las sentencias SQL, podemos llamar al método rollback para deshacer los cambios.
Sintaxis: connectionobj.rollback ();
P # 24) ¿Qué es savepoint y cuáles son los métodos que tenemos en JDBC para savepoint?
Responder: Savepoint se utiliza para crear puntos de control en una transacción y nos permite realizar una reversión al punto de guardado específico. Una vez que la transacción se confirma o se restituye, el punto de guardado que se creó para una transacción se destruirá automáticamente y dejará de ser válido.
Métodos para Savepoint:
- método setSavepoint (): Se usa para crear Savepoint, podemos usar el método rollback () para deshacer todos los cambios hasta el savepoint.
- método releaseSavepoint (): Se utiliza para eliminar el punto de guardado dado.
P # 25) ¿Enumere algunas excepciones incluidas en SQLException?
Responder:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Haga clic en aquí para obtener más información sobre las excepciones anteriores.
P # 26) ¿Qué es el procesamiento por lotes y cómo hacerlo en JDBC?
Responder: El procesamiento por lotes es el proceso de ejecutar varias declaraciones SQL en una transacción. Hacerlo reducirá el tiempo de comunicación y aumentará el rendimiento. Facilita mucho el procesamiento de una gran cantidad de datos.
Ventajas del procesamiento por lotes:
- Mejorar el rendimiento
- Consistencia de los datos
Cómo realizar el procesamiento por lotes:
Tenemos los métodos addBatch () y executeBatch () en Java para realizar el procesamiento por lotes. Estos 2 métodos están presentes en las clases Statement y PreparedStatement.
Q # 27) ¿Qué es el procedimiento almacenado?
Responder: Un grupo de consultas SQL que se ejecutan como una sola unidad para realizar una tarea en particular se conoce como procedimiento almacenado. Podemos pasar 3 tipos diferentes de parámetros. Cada procedimiento está representado por su nombre. Entonces, el nombre del procedimiento debe ser único.
>> Para obtener más información sobre el procedimiento almacenado, consulte este Enlace .
P # 28) ¿Cuáles son los tipos de parámetros en los procedimientos almacenados?
Responder: Hay tres tipos de parámetros disponibles en Procedimientos almacenados. Son:
- EN: Se utiliza para pasar los valores de entrada al procedimiento.
- FUERA: Se usa para obtener el valor del procedimiento.
- EN FUERA: Se utiliza para pasar los valores de entrada y obtener el valor del procedimiento.
Conclusión
Estas son algunas preguntas de la entrevista de JDBC que cubren tanto el nivel básico como el avanzado. Esperamos que este tutorial le brinde una descripción general de JDBC. Las explicaciones que se dan arriba enriquecerán su conocimiento y aumentarán su comprensión de JDBC. ¡¡¡Todo lo mejor!!!
Lectura recomendada
- Tutorial de conexión Java JDBC con ejemplo de programación
- Gestión de transacciones Java JDBC con ejemplo
- Tutorial de Java JDBC: ¿Qué es JDBC (conectividad de base de datos Java)?
- JDBC ResultSet: cómo utilizar Java ResultSet para recuperar datos
- Preguntas y respuestas de la entrevista
- Las 25 mejores preguntas y respuestas de la entrevista de pruebas ágiles
- Preguntas y respuestas de la entrevista de prueba ETL
- Las 25 preguntas y respuestas principales de la entrevista de Java Web Services