top 25 jdbc interview questions
이 튜토리얼은 자주 묻는 JDBC 인터뷰 질문과 인터뷰 준비에 도움이되는 설명과 함께 답변을 제공합니다.
에서 JDBC 일괄 처리 및 저장 프로 시저 튜토리얼 JDBC 튜토리얼 시리즈 , 우리는 JDBC 드라이버를 사용하여 Java에서 일괄 처리를 수행하는 방법을 배웠고 저장 프로 시저를 만들고 Java 프로그램에서 호출하는 방법도 배웠습니다.
JDBC는 Java 데이터베이스 연결에 일반적으로 사용되는 약식입니다. JDBC를 사용하여 Oracle, MySQL, MS Access 등과 같은 다양한 유형의 관계형 데이터베이스와 상호 작용할 수 있습니다.
이 기사는 JDBC 인터뷰를 깨는 데 도움이 될 것입니다. 여기서는 모든 중요한 JDBC 개념을 설명했습니다.
자주 묻는 JDBC 인터뷰 질문
Q # 1) JDBC 란 무엇입니까?
대답: Java Database Connectivity는 비공식적으로 JDBC로 알려져 있습니다. Java 응용 프로그램에서 Database에서 DB 작업을 수행하는 데 사용됩니다. Oracle, MySQL, MS Access 등과 같은 모든 종류의 DB와의 상호 작용을 지원합니다.
Q # 2) JDBC 드라이버의 용도는 무엇입니까?
대답: 소프트웨어 구성 요소이며 Java 응용 프로그램이 데이터베이스와 상호 작용하도록 만드는 데 사용됩니다.
Q # 3) JDBC의 다른 유형의 드라이버는 무엇입니까?
대답: 시장에는 4 가지 JDBC 드라이버가 있습니다.
그들은:
- 유형 I : JDBC – ODBC 브리지
- 유형 II : 네이티브 API – Half Java 드라이버
- 유형 III : 네트워크 프로토콜 – 완전히 Java 드라이버
- 유형 IV : 얇은 드라이버-완전히 Java 드라이버
유형 I : JDBC-ODBC 브리지
JDBC-ODBC 브릿지는 클라이언트와 DB 서버 간의 인터페이스로 작동합니다. 클라이언트는 JDBC-ODBC 드라이버를 넣어야합니다. 데이터베이스는 ODBC 드라이버를 지원해야합니다. 클라이언트 시스템 내의 드라이버 설치에 대해 걱정하지 않는 경우이 드라이버를 사용합니다.
유형 II : 네이티브 API : Half Java 드라이버
JDBC-ODBC 드라이버와 거의 비슷합니다. 여기서는 ODBC 드라이버가 아닌 기본 API를 사용하고 있습니다. 클라이언트 측 데이터베이스의 라이브러리가 사용됩니다.
유형 III : 네트워크 프로토콜
데이터베이스에 액세스하는 3 계층 접근 방식처럼 작동합니다. 중간 서버를 사용하여 DB에 연결합니다. JDBC 메소드 호출은 데이터를 중간 서버로 보내고 서버는 DB와 통신합니다.
유형 IV : 씬 드라이버
그것은 절대적으로 Java로 작성되었습니다. JDBC 메소드 호출을 벤더별 데이터베이스 프로토콜로 명시 적으로 변환합니다. 오늘날 데이터베이스 판매자는 고객에게 이러한 유형의 드라이버를 제공하고 있습니다. 따라서 프로그래머는 다른 소스에 의존하지 않습니다. 다른 드라이버보다 높은 성능을 제공합니다.
질문 # 4) 대부분의 사람들이 사용하는 JDBC 드라이버 유형은 무엇입니까?
대답: Type IV Thin 드라이버는 대부분의 애플리케이션에서 사용됩니다. 개발자가 다른 소스에 의존하지 않고 직접 사용할 수 있도록 데이터베이스 공급 업체 자체에서 개발했습니다. 간단하고 쉬운 개발이 가능합니다. 다른 드라이버보다 높은 성능을 제공합니다.
Q # 5) JDBC 아키텍처의 유형은 무엇입니까?
대답: JDBC는 DB에 접근하기 위해 2 가지 처리 모델을 지원합니다.
그들은:
- 2 계층 아키텍처 : 여기서 Java 프로그램은 명시 적으로 DB와 연결됩니다. JDBC 드라이버를 제외하고 DB와 연결하기 위해 애플리케이션 서버와 같은 중재자가 필요하지 않습니다. 클라이언트-서버 아키텍처라고도합니다.
- 3 계층 아키텍처 : 이는 2 계층 아키텍처와 완전히 반대입니다. JDBC 드라이버 또는 Java 프로그램과 데이터베이스간에 명시적인 통신이 없습니다. 애플리케이션 서버는 이들 사이의 중개자로 사용됩니다. Java 프로그램은 응용 서버로 요청을 보내고 서버는 요청을 보내고 DB와의 응답을받습니다.
Q # 6) JDBC의 구성 요소는 무엇입니까?
대답: JDBC에서 사용할 수있는 4 가지 주요 구성 요소가 있습니다.
그들은:
- JDBC API
- JDBC 드라이버 관리자
- JDBC 테스트 스위트
- JDBC – ODBC 브리지
Q # 7) JDBC와 연결하는 단계는 무엇입니까?
대답: Java에서 DB와 연결하는 기본 단계는 6 가지입니다. 다음은 다음과 같습니다.
- 패키지 가져 오기
- 드라이버로드
- 연결 설정
- 성명서 작성 및 실행
- 결과 검색
- 연결 닫기
Q # 8) 데이터베이스 테이블에 이미지와 파일을 저장하는 데 사용되는 데이터 유형은 무엇입니까?
대답:
- BLOB 데이터 유형 이미지를 DB에 저장하는 데 사용됩니다. BLOB 데이터 유형에 비디오와 오디오도 저장할 수 있습니다. 바이너리 유형의 데이터를 저장하는 데 사용됩니다.
- CLOB 데이터 유형 DB에 파일을 저장하는 데 사용됩니다. 데이터의 문자 유형을 저장하는 데 사용됩니다.
Q # 9) JDBC의 DriverManager 란 무엇입니까?
대답: DriverManager는 java.sql 패키지에있는 내장 클래스입니다. 우리 코드에서 연결 / 사용하는 Java Application과 DB 사이의 중재자로 사용됩니다. 첫 번째 단계로 DriverManager로 드라이버를 등록하거나로드해야합니다. 그러면 드라이버를 응용 프로그램에서 사용할 수 있습니다.
DriverManager의 주요 기능은 Database의 드라이버 클래스를로드하고 DB와의 연결을 생성하는 것입니다.
드라이버를 등록하거나로드하는 방법에는 두 가지가 있습니다.
- Class.forName ()
- DriverManager.registerDriver ()
Q # 10) Statement와 PreparedStatement 인터페이스의 차이점은 무엇입니까?
답변 : 아래 표는 차이점을 설명합니다.
성명서 | 준비된 진술 |
---|---|
주로 정적 SQL 문 실행에 사용됩니다. | 주로 미리 컴파일 된 SQL 문을 실행하는 데 사용됩니다. |
런타임시 매개 변수를 허용하지 않습니다. | 런타임에 다른 매개 변수를 허용합니다. |
그 성능은 prepareStatement에 비해 낮습니다. | 사전 컴파일 된 SQL 문을 실행하기 때문에 성능이 Statement보다 높습니다. |
CREATE, DROP, ALTER 및 TRUNCATE와 같은 DDL 문 실행에 적합합니다. | INSERT, UPDATE, DELETE와 같은 DML 문 실행에 적합 |
DB에 이미지 및 파일을 저장하거나 검색하는 데 사용할 수 없습니다. | DB에 이미지 및 파일을 저장하거나 검색하는 데 사용할 수 있습니다. |
SQL 주입을 시행합니다. | SQL 주입 방지 |
추천 읽기 = >> JDBC PreparedStatement 및 문
문 # 11) execute (), executeQuery () 및 executeUpdate ()의 차이점을 설명하십시오.
대답:
executeQuery () | executeUpdate () | 실행 () |
---|---|---|
DB에서 일부 데이터를 검색하는 SQL 문을 실행하는 데 사용됩니다. | DB의 데이터를 업데이트하거나 수정할 SQL 문을 실행하는데 사용됩니다. | 모든 종류의 SQL 문을 실행하는 데 사용됩니다. |
resultSet 객체를 반환합니다. | 아니오를 나타내는 정수 값을 리턴합니다. 영향을받는 행 수 | 부울 값을 반환합니다. TRUE – resultSet 객체를 반환합니다. FALSE – int 값을 반환하거나 아무것도 반환하지 않습니다. |
SELECT 쿼리 만 실행하는 데 사용됩니다. | SELECT가 아닌 쿼리 만 실행하는 데 사용됩니다. | SELECT 및 비 SELECT 쿼리를 모두 실행하는 데 사용됩니다. |
Q # 12) JDBC에서 저장 프로 시저를 호출하는 방법은 무엇입니까?
대답: CallableStatement 인터페이스를 통해 SQL 저장 프로 시저를 실행할 수 있습니다. CallableStatement 객체는 Connection 인터페이스의 prepareCall () 메서드를 사용하여 만들 수 있습니다.
문 # 13) ResultSet 인터페이스 란 무엇입니까?
대답: ResultSet 인터페이스는 SQL 쿼리 실행 후 출력 데이터를 저장하는 데 사용됩니다. ResultSet의 오브젝트는 결과 데이터에서 커서 포인트를 유지합니다. 기본적으로 커서는 결과 데이터의 첫 번째 행을 가리 킵니다. 결과 집합 개체의 데이터도 탐색 할 수 있습니다.
관계형 대 비 관계형 데이터베이스 장단점
통사론:
명세서 인터페이스 :
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
PreparedStatement 인터페이스 :
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
Q # 14) ResultSet의 유형은 무엇입니까?
대답: ResultSet에는 3 가지 유형이 있습니다. 이것들은:
무선 네트워크 용 보안 키는 어디서 찾나요
- TYPE_FORWARD_ONLY : 기본 옵션입니다. 커서가 처음에서 끝으로 이동합니다.
- TYPE_SCROLL_INSENSITIVE : 이 유형에서는 커서가 앞뒤로 이동합니다. 데이터 세트에는 SQL 쿼리가 데이터를 반환 할 때 데이터가 있습니다.
- TYPE_SCROLL_SENSITIVE : TYPE_SCROLL_INSENSITIVE와 동일하지만 결과 집합 개체를 반복하는 동안 데이터가 업데이트된다는 점이 다릅니다.
Q # 15) ResultSet의 동시성 모드는 무엇입니까?
대답: ResultSet에는 두 가지의 동시성 모드가 있습니다. 그들은:
- ResultSet.CONCUR_READ_ONLY : 기본 동시성 모드입니다. 읽기 전용 옵션을 사용할 수 있습니다. 업데이트가 불가능합니다.
- ResultSet.CONCUR_UPDATABLE : 업데이트가 가능합니다.
Q # 16) 데이터베이스가 동시성 모드를 지원하는지 어떻게 확인하나요?
대답: 주어진 유형 및 동시성 모드가 데이터베이스에서 지원되는지 여부를 확인하는 데 사용되는 supportsResultSetConcurrency () 메소드가 있습니다.
문 # 17) 결과 집합에서 특정 행의 데이터를 가져올 수 있습니까?
노트 : ResultSet에는 행 세트의 데이터가 있습니다.
대답: 예, relative () 메서드를 사용하여 resultSet에서 특정 행의 데이터를 가져올 수 있습니다. 커서를 현재 행에서 앞뒤로 주어진 행으로 이동합니다. 양의 값이 주어지면 앞으로 이동합니다. 음수 값이 주어지면 역방향으로 이동합니다.
Q # 18) ResultSet에서 getter 및 setter 메서드를 사용하는 방법은 무엇입니까?
대답:
게터 메서드 : 이는 ResultSet에서 테이블의 특정 열 값을 검색하는 데 사용됩니다. 열 색인 값 또는 열 이름을 매개 변수로 전달해야합니다. 일반적으로 getter 메소드를 getXXX () 메소드로 표시합니다.
예:
- int getInt (문자열 Column_Name) : 지정된 열 Index 및 int 데이터 형식의 값을 반환 형식으로 검색하는 데 사용됩니다.
세터 방법 : ResultSet setter 메소드를 사용하여 데이터베이스에 값을 설정할 수 있습니다. getter 메소드와 유사하지만 여기서는 특정 열에 대한 값 / 데이터를 데이터베이스에 삽입하고 해당 열의 인덱스 값 또는 열 이름을 전달해야합니다. 일반적으로 setter 메소드를 setXXX () 메소드로 표시합니다.
예:
- void setInt (int Column_Index, int Data_Value) : 지정된 컬럼 Index의 값을 int 값으로 삽입하는 데 사용됩니다.
Q # 19) ResultSetMetaData 인터페이스의 주요 목적은 무엇입니까?
대답: 이 인터페이스는 ResultSet에 대한 자세한 정보를 제공합니다. 각 ResultSet 오브젝트는 하나의 ResultSetMetaData 오브젝트와 연관되었습니다.
이 개체는 열의 데이터 유형, 열 이름, 해당 테이블의 열 수, 테이블 이름, 스키마 이름 등과 같은 열의 속성에 대한 세부 정보를 갖습니다. ResultSet 개체의 getMetaData () 메서드를 사용하여 ResultSetMetaData 객체.
통사론:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
Q # 20) DatabaseMetaData 란 무엇입니까?
대답: DatabaseMetaData 인터페이스는 우리가 사용하는 데이터베이스에 대한 정보를 제공합니다. 데이터베이스 이름, 데이터베이스 버전 등의 정보를 얻을 수 있습니다.
Q # 21) ACID 속성이란?
대답:
- A– 원 자성-> 모든 쿼리가 성공적으로 실행되면 데이터가 커밋되고 그렇지 않으면 커밋되지 않습니다.
- C– 일관성-> 데이터는 모든 거래 후 일관성이 있어야합니다.
- I– 격리-> 각 트랜잭션은 격리되어야합니다.
- D– 내구성-> 트랜잭션이 한 번 커밋되면 항상 사용 가능해야합니다 (변경 사항이없는 경우).
Q # 22) 자동 커밋 모드 값은 어떻게 변경하나요?
대답: 기본적으로 AutoCommit의 값은 TRUE입니다. SQL 문 실행 후 자동으로 커밋됩니다. setAutoCommit () 메서드를 사용하여 값을 AutoCommit으로 변경할 수 있습니다.
Q # 23) Commit 및 Rollback 방법의 사용은 무엇입니까?
대답:
Commit () 메서드 : 데이터를 커밋하기 위해 Java에 commit () 메서드가 있습니다. SQL 실행이 완료되면 commit 메서드를 호출 할 수 있습니다.
통사론: connectionobj.commit ();
Rollback () 메서드 : 데이터를 롤백하기 위해 Java에 rollback () 메소드가 있습니다. 롤백은 변경 사항을 취소하는 것을 의미합니다. SQL 문 중 하나라도 실패하면 rollback 메서드를 호출하여 변경 사항을 취소 할 수 있습니다.
통사론: connectionobj.rollback ();
Q # 24) 저장 점이 란 무엇이며 저장 점을 위해 JDBC에있는 방법은 무엇입니까?
대답: 세이브 포인트는 트랜잭션에서 체크 포인트를 생성하는 데 사용되며 특정 세이브 포인트로 롤백을 수행 할 수 있습니다. 트랜잭션이 커밋되거나 롤백되면 트랜잭션에 대해 생성 된 저장 점이 자동으로 삭제되고 무효화됩니다.
세이브 포인트 방법 :
- setSavepoint () 메서드 : 저장 점을 만드는 데 사용되며 rollback () 메서드를 사용하여 저장 점까지 모든 변경 사항을 취소 할 수 있습니다.
- releaseSavepoint () 메서드 : 주어진 저장 점을 제거하는 데 사용됩니다.
Q # 25) SQLException에 해당하는 몇 가지 예외를 나열합니까?
대답:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> 클릭 여기 위의 예외에 대한 자세한 내용은
Q # 26) 일괄 처리 란 무엇이며 JDBC에서 어떻게하나요?
대답: 일괄 처리는 하나의 트랜잭션에서 여러 SQL 문을 실행하는 프로세스입니다. 이렇게하면 통신 시간이 줄어들고 성능이 향상됩니다. 많은 양의 데이터를 훨씬 쉽게 처리 할 수 있습니다.
일괄 처리의 장점 :
- 성능 향상
- 데이터 일관성
일괄 처리 수행 방법 :
배치 처리를 수행하기 위해 Java에 addBatch () 및 executeBatch () 메소드가 있습니다. 이 두 가지 메서드는 Statement 및 PreparedStatement 클래스에 있습니다.
Q # 27) 저장 프로시 저는 무엇입니까?
대답: 특정 작업을 수행하기 위해 단일 단위로 실행되는 SQL 쿼리 그룹을 저장 프로 시저라고합니다. 3 가지 유형의 매개 변수를 전달할 수 있습니다. 각 절차는 이름으로 표시됩니다. 따라서 프로 시저의 이름은 고유해야합니다.
>> 저장 프로 시저에 대한 자세한 내용은 다음을 참조하십시오. 링크 .
Q # 28) 저장 프로 시저의 매개 변수 유형은 무엇입니까?
대답: 저장 프로 시저에서 사용할 수있는 세 가지 유형의 매개 변수가 있습니다. 그들은:
- 에: 프로 시저에 입력 값을 전달하는 데 사용됩니다.
- 밖: 프로 시저에서 값을 가져 오는 데 사용됩니다.
- 입 / 출력 : 입력 값을 전달하고 프로 시저에서 값을 가져 오는 데 사용됩니다.
결론
다음은 기본 및 고급 수준을 모두 다루는 JDBC 인터뷰 질문입니다. 이 튜토리얼이 JDBC에 대한 개요를 제공하기를 바랍니다. 위에 제공된 설명은 지식을 풍부하게하고 JDBC에 대한 이해를 높일 것입니다. 모두 제일 좋다!!!