Las 50 mejores preguntas y respuestas de entrevistas de JDBC (2025)
Aquí hay preguntas y respuestas de la entrevista de Java Database Connectivity (JDBC) para principiantes y candidatos experimentados para obtener el trabajo de sus sueños.
Descarga gratuita de PDF: Preguntas de la entrevista de JDBC
1) ¿Qué es el JDBC?
JDBC significa Conectividad de base de datos Java. JDBC es una API de Java que se comunica con la base de datos y ejecuta SQLquery.
2) ¿Qué es un controlador JDBC y cuántos controladores JDBC hay disponibles?
El controlador JDBC contiene clases e interfaces que ayudan a la aplicación y base de datos Java.
Hay 4 tipos de controladores JDBC.
- Controlador de tipo 1 o controlador de puente JDBC-ODBC.
- Controlador tipo 2 o nativo-API, en parte controlador Java.
- Controlador de tipo 3 o protocolo de red, controlador Java puro.
- Controlador tipo 4 o protocolo nativo, controlador Java puro.
3) ¿Cómo puedo conectarme? MySQL o Oracle con Java?
//for MySQL { try { Class.forName ("com.mysql.jdbc.Driver"); con=DriverManager.getConnection ("jdbc: mysql://localhost:3306/dbanme", "username", "password"); Statement st=con.createstatement (); Resultset rs=st.executeQuery ("select * from user"); rs.next (); catch (ClassNotFoundException e) { System.err.println ("ClassNotFoundException in get Connection," + e.getMessage()); } catch (SQLException e) { System.err.println ("SQLException in getConnection," + e.getMessage ()) ;} //for oracle { try { Class.forName ("oracle.jdbc.driver.OracleDriver"); con= DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:dbname", "username", "password"); Statement st=con.createstatement(); Resultset rs=st.executeQuery("select * from user"); Rs.next(); } catch (ClassNotFoundException e) { System.err.println("ClassNotFoundException in get Connection," +e.getMessage()); } catch (SQLException e) { System.err.println("SQLException in getConnection, " + e.getMessage()); } return con; }
Explicación del código
Class.forName crea una instancia del controlador JDBC y se registra con DriverManager.
El método getConnection() siempre establece una conexión a una base de datos.
Necesitamos crear un objeto de declaración a partir del objeto de conexión anterior. La declaración devolverá el objeto de conjunto de resultados. ResultSet.next() indica si el conjunto de resultados sigue devolviendo una fila.
4) ¿Qué controlador JDBC es el controlador más rápido?
El controlador de tipo 4 o de protocolo nativo, controlador Java puro, es el controlador más rápido.
5) ¿Cuáles son los componentes de la API de JDBC?
Hay cuatro tipos de componentes.
- API de JDBC
- Administrador de controladores JDBC
- Conjunto de pruebas JDBC
- Puente JDBC-ODBC
6) ¿Qué son las declaraciones JDBC?
Hay 3 tipos de declaraciones JDBC, como se indica a continuación:
- Comunicado:Se ejecutará SQL consulta (consulta SQL estática) contra la base de datos.
- Declaración preparada: Se utiliza cuando se desea ejecutar una sentencia SQL repetidamente. Los datos de entrada son dinámicos y se toman en tiempo de ejecución.
- Estado de cuenta exigible: Se utiliza cuando queremos ejecutar procedimientos almacenados.
7) ¿Cómo podemos ejecutar procedimientos almacenados?
Los procedimientos almacenados se pueden ejecutar utilizando la declaración JDBCcallable. Aquí está el código.
Connection conn = null; CallableStatement callStmt = conn.prepareCall("{call myStoreproc(?, ?)}"); callStmt.setString(1, "abcdefg");
8) ¿Cuáles son las ventajas de usar PreparedStatement en Java?
La declaración preparada se usa para ejecutar las mismas declaraciones SQL repetidamente. La declaración preparada se compila solo una vez a pesar de que usó "n" número de veces
9) ¿Qué es ResultSet?
La interfaz java.sql.ResultSet significa el conjunto de resultados de una consulta SQL. Significa que un cursor apunta a una fila de una tabla; apunta a antes de la primera fila.
10) ¿Cuáles son los tipos de ResultSet?
Hay tres tipos de ResultSet disponibles. Si no declaramos ningún ResultSet, eso significa que estamos llamando a TYPE_FORWARD_ONLY
- TYPE_FORWARD_ONLY: el cursor solo puede moverse hacia adelante.
- TYPE_SCROLL_INSENSITIVE: el cursor puede moverse hacia adelante y hacia atrás pero no sensible.
- TYPE_SCROLL_SENSITIVE: el cursor puede moverse hacia adelante y hacia atrás, pero es sensible
11) Explique la diferencia entre RowSet y ResultSet en JDBC.
En una conexión de controlador de ResultSet a una base de datos, no podemos hacer que Result sea un objeto serializado.
Debido al problema mencionado anteriormente, no podemos pasar el conjunto de resultados a través de la red.
RowSet amplía la interfaz de ResultSet, por lo que contiene todos los métodos de ResultSet. RowSet está serializado.
Entonces, podemos pasar Rowset de una clase a otra porque no tiene conexión con la base de datos.
12) ¿Por qué usaría setAutoCommit (falso) en JDBC?
Si desea desactivar la confirmación automática, configure connection.setAutoCommit (falso)
13) ¿Qué son las advertencias de la base de datos en JDBC y cómo podemos manejar las advertencias de la base de datos en JDBC?
La advertencia de SQL o la advertencia de la base de datos es la subclase de la clase SQLException. Podemos manejarlo usando el método getWarnings() en Connection, Statement y ResultSet
14) ¿Puedo obtener un ResultSet nulo?
No, no podemos obtener un conjunto de resultados nulo. ResultSet.next() puede devolver un valor nulo si el siguiente registro no contiene una fila.
15) ¿Qué quiere decir con metadatos y por qué los usamos?
Metadatos significa datos o información sobre otros datos. Usamos metadatos para obtener la versión del producto de la base de datos, el nombre del controlador, el número total de tablas y vistas.
16) ¿Cuál es la diferencia entre ejecutar, ejecutar Consulta, ejecutar Actualización en JDBC?
ejecutar (): se puede usar para cualquier tipo de consulta SQL.
executeQuery() : se puede usar para la consulta de selección.
executeUpdate(): se puede usar para cambiar/actualizar la tabla.
17) ¿Qué es la agrupación de conexiones de bases de datos? ¿Ventajas de usar un grupo de conexiones?
La agrupación de conexiones significa que las conexiones se almacenarán en la memoria caché y podremos reutilizarlas en el futuro.
Ventaja:
- Es mas rapido
- La agrupación de conexiones se vuelve más fácil de diagnosticar y analizar la conexión de la base de datos.
18) ¿Cuál es la función de la clase DriverManager?
Es una interfaz entre el usuario y los conductores. DriverManager rastrea toda la actividad entre una base de datos y el controlador apropiado.
19) ¿Cuál es el significado de las actualizaciones por lotes?
Las actualizaciones por lotes significan ejecutar un conjunto/grupo de consultas SQL a la vez.
Las actualizaciones por lotes solo se pueden usar para insertar, actualizar y eliminar, pero no para seleccionar consultas.
20) ¿Cuántos paquetes hay disponibles en la API de JDBC?
Hay dos tipos de paquetes disponibles en la API de JDBC
- java.sql
- javax.sql
21) ¿Cuál es el tipo de retorno de ejecutar, ejecutar Consulta y ejecutar Actualización?
El tipo de devolución de ejecución es booleano
El tipo de retorno de executeQuery es un objeto ResultSet
El tipo de retorno de executeUpdate es int
22) ¿El índice del conjunto de resultados comienza con 0 o 1?
El índice de Result Set comienza con 1.
23) ¿Cuál es el papel de Class.forName al cargar los controladores?
Class.forName crea una instancia del controlador JDBC y se registra con DriverManager.
24) ¿El puente JDBC-ODBC tiene subprocesos múltiples o no?
No, JDBC-ODBC Bridge utiliza métodos sincronizados para serializar todas las llamadas realizadas a ODBC.
25) ¿Qué interfaz maneja la gestión de transacciones en JDBC?
La interfaz de conexión maneja la gestión de transacciones en JDBC. Proporciona un método para confirmar (), revertir (), etc.
26) ¿Por qué ocurre el error "No hay controlador adecuado"?
No se produce ningún controlador adecuado cuando llamamos al método DriverManager.getConnection,
puede ocurrir debido a las siguientes razones:
- no se pueden cargar los controladores JDBC exactos antes de llamar al método getConnection.
- Puede ser una URL de JDBC incorrecta o no válida.
27) Las declaraciones preparadas son más rápidas. ¿Por qué?
La ejecución de declaraciones preparadas es más rápida que la ejecución directa porque la declaración se compila solo una vez. Las declaraciones preparadas y el controlador JDBC se conectan entre sí durante la ejecución y no hay gastos generales de conexión.
28) ¿Es posible conectarse a múltiples bases de datos? Usando una declaración única, ¿podemos actualizar o extraer datos de dos o tres o muchas bases de datos?
Sí, es posible conectarse a varias bases de datos al mismo tiempo, pero depende del controlador específico.
Para actualizar y extraer datos de la base de datos diferente, podemos usar la declaración única. Pero necesitamos middleware para manejar múltiples bases de datos o una sola base de datos.
29) ¿Dime la diferencia entre setMaxRows(int) y SetFetchSize(int)?
establecer filas máximas (int) | ¿EstablecerFetchSize(int)? |
---|---|
Define cuántas filas puede contener un conjunto de resultados a la vez | Define el número de filas que se leerán de la base de datos. |
30) Háblame de personajes especiales?
Un carácter especial va precedido de un carácter de escape. Ejemplo -
SELECT NAME FROM TABLE WHERE NAME LIKE '\_%' {escape '\'}
31) ¿Cuál es el significado de "lectura sucia" en la base de datos?
Lectura sucia significa "leer el valor que puede ser correcto o no serlo".
32) ¿Qué quiere decir con compromisos de dos fases?
La confirmación de dos fases se utiliza en el proceso de transacciones distribuidas. Si alguna transacción se está ejecutando y afectará a varias bases de datos. Se utilizarán confirmaciones de dos fases para sincronizar todas las bases de datos entre sí.
33) ¿Cuántos sistemas de bloqueo hay en JDBC?
Hay dos tipos de bloqueo disponibles en JDBC mediante los cuales podemos manejar más de un usuario.
Si dos usuarios visualizan el mismo registro, no se aplica ningún bloqueo. Si un usuario actualiza un registro y el otro también lo actualiza, se aplicará el bloqueo.
- Bloqueo optimista: bloqueará el registro solo cuando vayamos a “actualizar”.
- Bloqueo pesimista: bloqueará el registro desde el "seleccionar" para ver, actualizar y comprometer el tiempo.
34) ¿Cuáles son las excepciones en JDBC?
Hay cuatro tipos de excepciones en JDBC.
- excepción de actualización por lotes
- Truncamiento de datos
- Excepción SQL
- Advertencia SQL
35) ¿Dar pasos para conectarse a la base de datos usando JDBC?
Hay dos formas de conectar la base de datos usando JDBC
- Usando DriverManager:
Cargará la clase de controlador con la ayuda de class.forName(clase de controlador) y Class.forName().
Después de cargarlo, pasará el control a DriverManager.
DriverManager.getConnection() creará la conexión para acceder a la base de datos.
- Usando fuente de datos:
Para DataSource, no es necesario usar DriverManager con JNDI. Este buscará el DataSource en el servidor del servicio de nombres. El método DataSource.getConnection() devolverá el objeto Connection a la base de datos.
36) ¿Explicar la arquitectura JDBC?
La API de JDBC admite modelos de 2 y 3 niveles para la base de datos.
En el modelo de 2 niveles, la aplicación Java interactúa con la fuente de datos
En el modelo de 3 niveles, los comandos se redirigen a un "nivel medio" de servicios. Después de eso, los comandos se envían a la fuente de datos.
37) ¿Cuáles son las nuevas funciones disponibles en JDBC 4.0?
Las nuevas funciones son
- Carga automática por clase de controlador JDBC
- Gestión de conexión mejorada
- ID de fila SQL habilitado
- Conjunto de datos implementado por SQL mediante el uso de anotaciones
- Mejoras en el manejo de excepciones de SQL
- Compatibilidad con SQL XML archivos
38) ¿Cuáles son los paquetes que se utilizan en JDBC?
8 paquetes se utilizan en JDBC –
- controlador sql
- Conexión
- Comunicado
- Declaración preparada
- Declaración invocable
- Conjunto resultante
- ResultadoSetMetaData
- Base de datosMetaData
39) ¿Cuántos RowSet están disponibles en JDBC?
Hay dos tipos de conjuntos de filas disponibles:
- Conectado – Un objeto RowSet conectado se conecta a la base de datos instantáneamente. Si la aplicación finaliza, el objeto RowSet conectado también finaliza.
- Desconectado – Un objeto RowSet desconectado se conecta a la base de datos después de la ejecución de la consulta requerida.
40) ¿Cuál es el significado de conexión?
La interfaz de conexión consta de métodos para la interacción con la base de datos.
41) ¿Explicar JDBC Savepoint?
Un punto de guardado representa un punto al que se puede revertir la transacción actual. En lugar de revertir todos sus cambios, puede optar por revertir solo algunos de ellos.
42) ¿Enumere las ventajas de usar DataSource?
La fuente de datos divide el trabajo entre el administrador y el programador/desarrollador.
El administrador crea un objeto DataSource y lo vincula al registro JNDI. Un programador/desarrollador recupera el objeto DataSource del registro. A continuación, establece la conexión con la base de datos.
43) ¿Cuál es la razón por la que necesitamos un JdbcRowSet como el contenedor de ResultSet?
Podemos usar el objeto ResultSet como un componente de JavaBeans.
- Un JdbcRowSet también se puede utilizar como componente de JavaBeans. Es por eso que puede crearse y configurarse en tiempo de diseño o compilación y ejecutarse en tiempo de ejecución.
- Todos los objetos jdbcRowSet son desplazables y actualizables.
44) ¿De cuántas maneras podemos ver un conjunto de resultados?
Hay 2 formas de ver ResultSet
- visión de conjunto
- índice de columna.
Ejemplo: getInt(String columnName), getInt(int columnIndex)
45) ¿De cuántas maneras puede actualizar un conjunto de resultados?
Los siguientes métodos lo ayudan a actualizar el conjunto de resultados
- actualizarfila()
- borrar fila()
- actualizarfila()
- cancelar actualizaciones de fila()
- insertar fila()
46) ¿Por qué debemos cerrar las conexiones de base de datos en Java?
Como práctica recomendada, debemos cerrar el conjunto de resultados, la declaración y la conexión. Si la conexión proviene de un grupo, al cerrarse, la conexión se envía de vuelta al grupo para su reutilización. Estamos haciendo esto en el bloque finalmente {}, porque si ocurre alguna excepción, aún tenemos la oportunidad de cerrar esto.
47) ¿Por qué usamos tipos de datos blob en JDBC?
Estos se utilizan para almacenar una gran cantidad de datos en la base de datos, como imágenes, películas, etc.
48) ¿Cómo configurar el atributo Concurrency en ResultSet?
Hay dos niveles de concurrencia.
- CONCUR_READ_ONLY – Es solo para lectura.
- CONCUR_UPDATABLE: es tanto para leer como para actualizar.
49) ¿Cuál es la diferencia entre los cursores de la base de datos del cliente y del servidor?
El cursor del lado del servidor significa que los datos y los resultados se guardan en el servidor. Sólo cuando se envían los datos solicitados al cliente.
El cursor del lado del cliente significa todos los datos enviados a la ubicación del cliente.
50) ¿Cómo se insertan imágenes en la base de datos usando JDBC?
Imágenes en la base de datos que utilizan el tipo de datos BLOB en el que la imagen se almacena como un flujo de bytes. El siguiente código muestra cómo insertar la imagen en la base de datos.
Connection con = null; PreparedStatement prs = null; InputStream inputstrm = null; Class.forName("oracle.jdbc.driver.OracleDriver"); con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:mydb","username","yourpassword"); //localhost is your machine or hostname //1521 is your oracle database port number //mydb is your oracle database name. prs = con.prepareCall("insert into emp_profile values (?,?)"); prs.setInt(1, 1223); inputstrm = new FileInputStream(new File("emp_img.jpg")); prs.setBinaryStream(2, inputstrm); int count = prs.executeUpdate();
Estas preguntas de la entrevista también te ayudarán en tu viva(orals)
muy útil para los estudiantes………..
Mejores Clínicas de