top 25 jdbc interview questions
Aquest tutorial proporciona preguntes i respostes freqüents a les entrevistes de JDBC amb explicacions per ajudar-vos a preparar l'entrevista:
A la Processament per lots i procediment emmagatzemat de JDBC tutorial del Sèrie de tutorials JDBC , hem après mètodes per fer processament per lots en Java mitjançant el controlador JDBC i també hem après a crear procediments emmagatzemats i anomenar-lo des d'un programa Java.
JDBC és la forma curta més utilitzada per a la connectivitat de bases de dades Java. En utilitzar JDBC, podem interactuar amb diferents tipus de bases de dades relacionals com Oracle, MySQL, MS Access, etc.
Aquest article us ajudarà a trencar l’entrevista de JDBC. Aquí hem explicat tots els conceptes importants de JDBC.
Preguntes freqüents sobre l'entrevista de JDBC
P # 1) Què és JDBC?
Resposta: La connectivitat de bases de dades Java es coneix de manera no oficial com JDBC. S'utilitza per realitzar operacions de base de dades a l'aplicació de base de dades des de Java. Admet la interacció amb qualsevol tipus de base de dades com Oracle, MySQL, MS Access, etc.
P # 2) Quin ús té el controlador JDBC?
Resposta: És un component de programari i s’utilitza per fer que l’aplicació Java interaccioni amb la base de dades.
P # 3) Quins són els diferents tipus de controladors a JDBC?
Resposta: Hi ha quatre controladors JDBC diferents al mercat.
Ells són:
- Tipus I: JDBC - Pont ODBC
- Tipus II: API nativa: mig controlador de Java
- Tipus III: Protocol de xarxa: controlador totalment Java
- Tipus IV: Thin Driver: controlador totalment Java
Tipus I: pont JDBC-ODBC
El pont JDBC-ODBC es comportarà com una interfície entre el client i el servidor de base de dades. El client hauria de posar-hi el controlador JDBC-ODBC. La base de dades hauria de ser compatible amb el controlador ODBC. Si no ens preocupa la instal·lació del controlador al sistema client, utilitzarem aquest controlador.
Tipus II: API nativa: mig controlador Java
És gairebé com un controlador JDBC-ODBC. En lloc d’un controlador ODBC, aquí estem utilitzant API natives. S'utilitzen biblioteques de la base de dades del costat del client.
Tipus III: protocol de xarxa
Funciona com un enfocament de 3 nivells per accedir a la base de dades. S’utilitzarà un servidor intermedi per connectar-se a la base de dades. Les trucades del mètode JDBC envien dades a un servidor intermedi i el servidor es comunicarà amb la base de dades.
Tipus IV: controlador prim
Està absolutament escrit en Java. Converteix explícitament les trucades del mètode JDBC al protocol de base de dades específic del proveïdor. Actualment, el propi comerciant de bases de dades proporciona aquest tipus de controladors als seus clients. Per tant, els programadors no confien en altres fonts. Ofereix un rendiment superior a la resta de controladors.
Q # 4) Quin tipus de controlador JDBC utilitza la majoria de la gent?
Resposta: El controlador prim de tipus IV s’utilitza a la majoria de les aplicacions. El desenvolupa el mateix proveïdor de bases de dades perquè els desenvolupadors puguin utilitzar-la directament sense dependre de cap altra font. Permet un desenvolupament senzill i fàcil. Ofereix un rendiment superior a la resta de controladors.
Q # 5) Quins són els tipus d'Arquitectura JDBC?
Resposta: JDBC admet 2 tipus de models de processament per accedir a la base de dades.
Ells són:
- Arquitectura de dos nivells: Aquí els programes Java es connecten explícitament amb DB. No necessitem cap mediador, com ara el servidor d’aplicacions, per connectar-nos amb DB, excepte el controlador JDBC. També es coneix com a arquitectura client-servidor.
- Arquitectura de tres nivells: És totalment inversa a l’arquitectura de dos nivells. No hi haurà cap comunicació explícita entre el controlador JDBC o el programa Java i la base de dades. Un servidor d'aplicacions s'utilitza com a mediador entre ells. El programa Java enviarà la sol·licitud a un servidor d'aplicacions i el servidor l'enviarà i rebrà la resposta a / des de la base de dades.
P # 6) Quins són els components de JDBC?
Resposta: Hi ha quatre components principals disponibles a JDBC.
Ells són:
- API JDBC
- Gestor de controladors JDBC
- JDBC Test Suite
- JDBC - Pont ODBC
P # 7) Quins són els passos per connectar amb JDBC?
Resposta: Hi ha 6 passos bàsics per connectar amb la base de dades a Java. Aquests es detallen a continuació:
- Importa el paquet
- Controlador de càrrega
- Establir connexió
- Creació i execució de la declaració
- Recupereu resultats
- Tanca la connexió
Q # 8) Quins tipus de dades s’utilitzen per emmagatzemar la imatge i el fitxer a la taula de base de dades?
Resposta:
- Tipus de dades BLOB s’utilitza per emmagatzemar la imatge a la base de dades. També podem emmagatzemar vídeos i àudios en el tipus de dades BLOB. S'utilitza per emmagatzemar el tipus binari de dades.
- Tipus de dades CLOB s'utilitza per emmagatzemar el fitxer a la base de dades. S'utilitza per emmagatzemar el tipus de caràcter de dades.
P # 9) Què és DriverManager a JDBC?
Resposta: DriverManager és una classe integrada que està present al paquet java.sql. S'utilitzarà com a mediador entre l'aplicació Java i la base de dades, que estem connectant / utilitzant al nostre codi. Com a primer pas, hem de registrar o carregar el controlador amb DriverManager. A continuació, el controlador estarà disponible per utilitzar-lo a l'aplicació.
La funció principal de DriverManager és carregar la classe de controladors de la base de dades i crear una connexió amb DB.
Hi ha dues maneres de registrar o carregar el controlador:
- Class.forName ()
- DriverManager.registerDriver ()
Q # 10) Quina diferència hi ha entre les interfícies Statement i PreparedStatement.
Resposta: La taula següent explica les diferències:
DECLARACIÓ | DECLARACIÓ PREPARADA |
---|---|
S'utilitzarà principalment per executar sentències SQL estàtiques | S'utilitzarà principalment per executar sentències SQL precompilades |
No acceptarà paràmetres en temps d'execució | Acceptarà diferents paràmetres en temps d'execució |
El seu rendiment és inferior en comparació amb prepareStatement | El seu rendiment és superior a Statement, ja que executa les instruccions SQL precompilades |
És adequat per executar sentències DDL com ara CREATE, DROP, ALTER i TRUNCATE | És adequat per executar sentències DML com INSERT, UPDATE i DELETE |
No es pot utilitzar per emmagatzemar o recuperar imatges i fitxers a la base de dades | Es pot utilitzar per emmagatzemar o recuperar imatges i fitxers a la base de dades |
Aplica la injecció SQL | Evita la injecció SQL |
Lectura suggerida = >> Declaració i declaració preparats de JDBC
Q # 11) Expliqueu la diferència entre execute (), executeQuery () i executeUpdate ().
Resposta:
executeQuery () | executeUpdate () | Executa () |
---|---|---|
S'utilitza per executar les sentències SQL que recuperen algunes dades de la base de dades | S'utilitza per executar les sentències SQL que actualitzaran o modificaran les dades de la base de dades | S’utilitza per executar qualsevol tipus d’instruccions SQL |
Retorna l'objecte resultSet | Retorna un valor enter que representa el núm. de files afectades | Retorna un valor booleà TRUE: retorna un objecte resultSet FALS: retorna un valor int o res |
S'utilitza només per executar la consulta SELECT | S'utilitza només per executar una consulta que no sigui SELECT | S'utilitza per executar consultes SELECT i no SELECT |
P # 12) Com trucar als procediments emmagatzemats a JDBC?
Resposta: Podem executar els procediments emmagatzemats SQL a través de la interfície CallableStatement. L'objecte CallableStatement es pot crear mitjançant el mètode prepareCall () de la interfície de connexió.
Q # 13) Què és la interfície ResultSet?
Resposta: La interfície ResultSet s'utilitza per emmagatzemar les dades de sortida després de l'execució de la consulta SQL. L'objecte de ResultSet manté el punt del cursor a les dades del resultat. Per defecte, el cursor apunta abans de la primera fila de les dades del resultat. També podem recórrer les dades dels objectes del conjunt de resultats.
com afegir un repositori svn a eclipsi
Sintaxi:
Interfície de declaració:
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
Interfície de declaració preparada:
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
P # 14) Quins són els tipus de ResultSet?
Resposta: Hi ha 3 tipus a ResultSet. Aquests són:
fusionar pseudocodi de classificació c ++
- TYPE_FORWARD_ONLY: És l’opció predeterminada. El cursor es mourà de principi a fi.
- TYPE_SCROLL_INSENSITIVE: En aquest tipus, el cursor es mourà cap a endavant i cap enrere. El conjunt de dades té les dades quan la consulta SQL retorna les dades.
- TYPE_SCROLL_SENSITIVE: És el mateix que TYPE_SCROLL_INSENSITIVE, la diferència és que tindrà les dades actualitzades mentre itera l’objecte del conjunt de resultats.
P # 15) Quins són els modes de simultaneïtat a ResultSet?
Resposta: Hi ha 2 modes diferents de simultaneïtat a ResultSet. Ells són:
- ResultSet.CONCUR_READ_ONLY : És el mode de concurrència predeterminat. Hi ha disponible una opció de només lectura. No es pot actualitzar.
- ResultSet.CONCUR_UPDATABLE: L’actualització és possible.
P # 16) Com comprovar si la base de dades admet el mode de simultaneïtat?
Resposta: Tenim el mètode supportsResultSetConcurrency () que s’utilitzarà per comprovar si la base de dades admet el tipus de tipus i els modes de simultaneïtat donats o no.
Q # 17) Podem obtenir les dades de la fila en concret del conjunt de resultats?
Nota: ResultSet té les dades d’un conjunt de files
Resposta: Sí, podem obtenir les dades de la fila concreta del resultSet mitjançant el mètode relative (). Mourà el cursor a la fila donada cap endavant o cap enrere des de la fila actual. Si s'ha donat el valor positiu, es mourà en la direcció cap endavant. Si s'ha donat el valor negatiu, es desplaçarà en la direcció enrere.
P # 18) Què utilitzen els mètodes getter i setter a ResultSet?
Resposta:
Mètodes Getter: S’utilitzen per recuperar els valors de la columna particular de la taula de ResultSet. Cal passar el valor de l'índex de columna o el nom de la columna com a paràmetre. Normalment, representarem el mètode getter com a mètodes getXXX ().
Exemple:
- int getInt (string Column_Name): S'utilitza per recuperar el valor de la columna especificada Índex i tipus de dades int com a tipus de retorn.
Mètodes Setter: Podem establir el valor a la base de dades mitjançant mètodes de configuració de ResultSet. És similar als mètodes getter, però aquí hem de passar els valors / dades de la columna en particular per inserir a la base de dades i el valor de l’índex o el nom de la columna d’aquesta columna. Normalment representarem el mètode setter com a mètodes setXXX ().
Exemple:
- void setInt (int Column_Index, int Data_Value): S'utilitza per inserir el valor de la columna Índex especificat amb un valor int.
P # 19) Quin és el propòsit principal de la interfície ResultSetMetaData?
Resposta: Aquesta interfície proporciona més informació sobre ResultSet. Cada objecte ResultSet s'ha associat amb un objecte ResultSetMetaData.
Aquest objecte tindrà els detalls de les propietats de les columnes com el tipus de dades de la columna, el nom de la columna, el nombre de columnes d’aquesta taula, el nom de la taula, el nom de l’esquema, etc., s’utilitza el mètode getMetaData () de l’objecte ResultSet per crear el Objecte ResultSetMetaData.
Sintaxi:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
P # 20) Què és DatabaseMetaData?
Resposta: La interfície DatabaseMetaData proporciona informació sobre la base de dades que estem utilitzant. Obtindrem la informació següent: DatabaseName, versió de la base de dades, etc.
P # 21) Què és la propietat ACID?
Resposta:
- A – Atomicity -> Si totes les consultes s’han executat correctament, les dades es comprometran en cas contrari.
- C – Coherència -> Les dades haurien de ser coherents després de qualsevol transacció.
- I – Aïllament -> Cada transacció s’hauria d’aïllar.
- D – Durabilitat -> Si la transacció es compromet una vegada, hauria d'estar disponible sempre (si no s'han produït canvis)
P # 22) Com es canvia el valor del mode de confirmació automàtica?
Resposta: Per defecte, el valor de AutoCommit és TRUE. Després de l'execució de la sentència SQL, es comprometrà automàticament. Mitjançant el mètode setAutoCommit (), podem canviar el valor a AutoCommit.
P # 23) Què utilitzen els mètodes de confirmació i retrocés?
Resposta:
Mètode Commit (): Tenim el mètode commit () a Java per confirmar les dades. Un cop feta l'execució SQL, podem trucar al mètode commit.
Sintaxi: connectionobj.commit ();
Mètode Rollback (): Tenim el mètode rollback () a Java per recuperar les dades. Desplaçament significa desfer els canvis. Si alguna de les sentències SQL falla, podem trucar al mètode de recuperació per desfer els canvis.
Sintaxi: connectionobj.rollback ();
P # 24) Què és savepoint i quins són els mètodes que tenim a JDBC per savepoint?
Resposta: Savepoint s’utilitza per crear punts de control en una transacció i ens permet fer una recuperació al punt de guarda específic. Una vegada que la transacció s'hagi compromès o s'hagi retrocedit, el punt de guarda que s'ha creat per a una transacció es destruirà automàticament i queda invàlid.
Mètodes per a Savepoint:
- mètode setSavepoint (): S'utilitza per crear Savepoint, podem utilitzar el mètode rollback () per desfer tots els canvis fins al punt de guardat.
- releaseSavepoint () mètode: S'utilitza per eliminar el punt de guarda donat.
P # 25) Enumereu algunes excepcions que pertanyen a SQLException?
Resposta:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Feu clic a aquí per obtenir més informació sobre les excepcions anteriors.
P # 26) Què és el processament per lots i com fer-ho a JDBC?
Resposta: El processament per lots és el procés d’execució de diverses sentències SQL en una transacció. En fer-ho, es reduirà el temps de comunicació i augmentarà el rendiment. Facilita molt el processament d’una gran quantitat de dades.
Avantatges del processament per lots:
- Millorar el rendiment
- Coherència de dades
Com es realitza el processament per lots:
Disposem de mètodes addBatch () i executeBatch () a Java per realitzar el processament per lots. Aquests 2 mètodes estan presents a les classes Statement i PreparedStatement.
P # 27) Quin és el procediment emmagatzemat?
Resposta: Un grup de consultes SQL que s’executen com una sola unitat per realitzar una tasca concreta es coneix com a Procediment emmagatzemat. Podem passar 3 tipus de paràmetres diferents. Cada procediment està representat pel seu nom. Per tant, el nom del procediment hauria de ser únic.
>> Per obtenir més informació sobre el procediment emmagatzemat, consulteu això enllaç .
P # 28) Quins són els tipus de paràmetres als procediments emmagatzemats?
Resposta: Hi ha tres tipus de paràmetres disponibles als procediments emmagatzemats. Ells són:
- A: S’utilitza per passar els valors d’entrada al procediment.
- Fora: S'utilitza per obtenir el valor del procediment.
- DINS FORA: S’utilitza per passar els valors d’entrada i obtenir el valor des del procediment.
Conclusió
Aquestes són algunes preguntes de l'entrevista de JDBC que cobreixen tant els nivells bàsic com avançat. Esperem que aquest tutorial us doni una visió general de JDBC. Les explicacions que es donen anteriorment enriquiran el vostre coneixement i augmentaran la vostra comprensió de JDBC. Tot el millor!!!
Lectura recomanada
- Tutorial de connexió Java JDBC amb exemple de programació
- Gestió de transaccions Java JDBC amb exemple
- Tutorial Java JDBC: què és JDBC (connectivitat a la base de dades Java)
- JDBC ResultSet: Com utilitzar Java ResultSet per recuperar dades
- Preguntes i respostes de l’entrevista
- 25 millors preguntes i respostes d’entrevista de proves àgils
- Preguntes i respostes d’entrevistes de proves ETL
- Top 25 de preguntes i respostes d’entrevistes de serveis web de Java