산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

50가지 필수 JDBC 면접 질문 및 전문가 답변(2026)

50가지 필수 JDBC 면접 질문 및 전문가 답변(2026)

JDBC 인터뷰를 준비하려면 데이터베이스 연결, 성능 튜닝 및 보안 모범 사례를 깊이 이해해야 합니다. 다음 50개 질문은 채용 담당자가 우선시하는 핵심 개념과 실제 시나리오를 다룹니다.

👉 무료 PDF 다운로드:JDBC 인터뷰 질문 및 답변

1) JDBC란 무엇이며 Java 애플리케이션에서 왜 중요한가요?

JDBC(Java Database Connectivity)는 Java 프로그램이 관계형 데이터베이스와 상호 작용할 수 있게 해주는 핵심 API입니다. SQL 실행, 결과 처리 및 트랜잭션 제어를 표준화하여 개발자가 최소한의 변경만으로 MySQL, Oracle, PostgreSQL 등을 전환할 수 있는 데이터베이스에 구애받지 않는 코드를 작성할 수 있습니다.

2) 4가지 JDBC 드라이버 유형과 주요 차이점은 무엇입니까?

3) JDBC 프로그램의 수명주기를 간략하게 설명합니다.

  1. 드라이버 로드:Class.forName("com.mysql.cj.jdbc.Driver")
  2. Connection 설립 DriverManager을 통해 또는 DataSource .
  3. Statement 만들기 , PreparedStatement 또는 CallableStatement .
  4. SQL(쿼리, 업데이트 또는 프로시저)을 실행합니다.
  5. ResultSet 처리 해당되는 경우.
  6. 모든 리소스 닫기(try‑with‑resources 선호) ).

4) 언제 Statement, preparedStatement 또는 CallableStatement를 사용해야 합니까?

5) JDBC에서는 트랜잭션을 어떻게 관리하나요?

  1. 자동 커밋 비활성화:conn.setAutoCommit(false)
  2. 여러 문을 실행합니다.
  3. 성공 시 conn.commit(); 실패 시 conn.rollback() .

자금 이체와 같은 원자적 작업에 이 패턴을 사용하세요.

6) JDBC 커넥션 풀링의 장점과 단점은 무엇인가요?

HikariCP 및 Apache DBCP와 같은 프레임워크는 업계 표준입니다.

7) Execution(), ExecuteQuery(), ExecuteUpdate()를 구별합니다.

8) JDBC 성능을 향상시키는 전략은 무엇입니까?

9) JDBC의 일괄 업데이트에 대해 설명하세요.

PreparedStatement ps = conn.prepareStatement("INSERT INTO student VALUES(?,?)");
for(int i=1;i<=1000;i++){
  ps.setInt(1,i);
  ps.setString(2,"Name"+i);
  ps.addBatch();
}
ps.executeBatch();

왕복 횟수를 줄이고 처리량을 높입니다.

10) ResultSet은 어떤 역할을 합니까?

ResultSet은 쿼리 결과를 보유합니다. 생성 플래그에 따라 앞으로만 가능하거나 스크롤 가능하거나 업데이트 가능합니다.

11) JDBC와 ODBC를 비교합니다.

12) JDBC 아키텍처 구성 요소를 식별합니다.

  1. JDBC API(연결, 명령문, 결과 집합).
  2. Driver Manager(드라이버 등록)
  3. 드라이버 구현(Type1-4).
  4. 데이터베이스 백엔드.

13) ResultSetMetaData와 DatabaseMetaData를 설명하세요.

14) 세이브포인트는 어떻게 사용하나요?

conn.setAutoCommit(false);
Savepoint sp = conn.setSavepoint("sp1");
// operations
conn.rollback(sp); // partial rollback
conn.commit();

15) RowSet 및 그 변형을 정의합니다.

16) JDBC는 SQL 예외를 어떻게 처리하나요?

SQLException은 getErrorCode()를 제공합니다. , getSQLState()getMessage() . 항상 실패 시 로그하고 롤백하세요.

17) 일괄 처리란 무엇인가요?

여러 DML 문을 단일 왕복으로 그룹화합니다. addBatch()를 사용하세요 및 executeBatch() .

18) 명령문 유형을 다시 나열합니다.

19) 효율적인 연결 관리.

DataSource 선호 연결 풀링을 사용합니다. try‑with‑resources 사용 자동 정리를 위해.

20) JDBC 문과 Hibernate 세션.

21) 자동 생성된 키를 검색합니다.

PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();

22) BLOB 및 CLOB 처리.

23) ResultSet을 스크롤 가능/업데이트 가능하게 만들기.

Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE");
rs.absolute(3);
rs.updateString("name", "UpdatedName");
rs.updateRow();

24) DataSource 대 DriverManager.

25) ReadyStatement를 사용한 일괄 처리.

for(int i=1;i<=5;i++){
  ps.setInt(1,i);
  ps.setString(2,"Student"+i);
  ps.addBatch();
}
ps.executeBatch();

26) DatabaseMetaData 사용

DatabaseMetaData dbmd = conn.getMetaData();
System.out.println("DB: " + dbmd.getDatabaseProductName());

27) 실행 변형 요약

28) JDBC 리소스를 닫습니다.

try (Connection c = ds.getConnection();
     Statement s = c.createStatement();
     ResultSet rs = s.executeQuery("SELECT * FROM EMPLOYEE")) {
  while(rs.next()){ /* process */ }
}

29) 일반적인 성능 최적화.

30) 저장 프로시저 호출.

CallableStatement cs = conn.prepareCall("{call getEmployeeSalary(?)}");
cs.setInt(1,101);
ResultSet rs = cs.executeQuery();

31) JDBC 연결 풀링 내부.

초기화 시 풀은 고정된 연결 세트를 생성합니다. 연결 대여를 요청합니다. 사용 후 이를 반환하고 리소스를 메모리에 유지합니다.

32) HikariCP를 구성합니다.

HikariConfig cfg = new HikariConfig();
cfg.setJdbcUrl("jdbc:mysql://localhost:3306/testdb");
cfg.setUsername("root");
cfg.setPassword("pw");
cfg.setMaximumPoolSize(10);
HikariDataSource ds = new HikariDataSource(cfg);

33) DriverManager 대 DataSource.

34) 일반적인 "적합한 드라이버를 찾을 수 없음"이 원인입니다.

35) SQL 주입을 방지합니다.

36) JDBC와 ORM(Hibernate).

37) SQL 쿼리를 로깅합니다.

38) JDBC를 사용한 안전한 멀티스레딩.

39) Spring의 JDBC/Spring Boot.

스프링의 JdbcTemplate 상용구, 예외 번역, 연결 풀링을 자동으로 처리합니다.

40) JDBC 연결 상태.

41) 드라이버 유형 요약

42) 트랜잭션 격리 수준.

43) 분산(XA) 트랜잭션.

44) JDBC 성능 프로파일링

45) JDBC 메모리 누수 방지

46) 마이크로서비스/클라우드용 JDBC.

47) 연결 실패의 원활한 처리.

for(int i=0;i<3;i++){
  try(Connection c=ds.getConnection()){ break; }
  catch(SQLTransientConnectionException e){ Thread.sleep(1000*(i+1)); }
}

48) 커밋, 롤백 및 저장점 차이점

49) JDBC 메타데이터 유용성.

50) 엔터프라이즈 JDBC 모범 사례.

  1. DataSource 사용 풀링으로.
  2. PreparedStatement 선호 .
  3. 적절한 격리를 통해 거래를 처리하세요.
  4. 일괄 작업 및 페이지 매김
  5. 쿼리를 기록하고 모니터링합니다.
  6. 예외와 재시도를 적절하게 처리합니다.

🔍 실제 시나리오 및 전략적 대응이 포함된 최고의 JDBC 면접 질문

다음은 면접관이 기대하는 것과 강력한 예시 답변이 포함된 신중하게 만들어진 10가지 JDBC 면접 질문입니다.

1) JDBC란 무엇이며 왜 중요한가요?

예상 답변: JDBC는 데이터베이스 액세스를 위한 Java API입니다. SQL 실행, 결과 처리 및 트랜잭션을 추상화하여 데이터베이스에 구애받지 않는 코드를 활성화합니다.

2) JDBC 드라이버 유형을 설명합니다.

예상 답변: 네 가지 유형:JDBC‑ODBC 브리지, 기본 API, 네트워크 프로토콜, 씬 드라이버. Type4는 오늘날 가장 일반적입니다.

3) 어떻게 연결을 효율적으로 관리하나요?

예상 답변: HikariCP와 같은 연결 풀을 사용하십시오. 요청마다 연결을 열거나 닫지 마세요.

4) 구문, ReadyStatement 및 CallableStatement를 구별합니다.

예상 답변: 명령문 - 정적 SQL; preparedStatement – ​​매개변수화되어 주입을 방지합니다. CallableStatement – 저장 프로시저.

5) 수행한 JDBC 성능 최적화에 대해 설명하세요.

예상 답변: 문자열 연결을 preparedStatement로 대체하고 풀링을 도입했으며 일괄 삽입을 사용했습니다. 응답 시간이 40% 단축되었습니다.

6) SQL 주입을 어떻게 방지하나요?

예상 답변: ReadyStatement를 사용하세요. 입력 유효성을 검사합니다. DB 권한을 제한하세요.

7) JDBC 연결 실패 문제를 해결합니다.

예상 답변: URL, 자격 증명, 네트워크, 드라이버 jar를 확인하세요. 로그 검토 잘못 구성된 포트를 수정하세요.

8) JDBC에서 트랜잭션을 관리합니다.

예상 답변: 자동 커밋을 비활성화하고, 작업을 수행하고, 결과에 따라 커밋 또는 롤백합니다. ACID 준수를 보장합니다.

9) JDBC로 어려운 DB 문제를 해결하세요.

예상 답변: 대량 삽입에 대한 일괄 처리를 구현하여 시간을 몇 분에서 몇 초로 단축했습니다.

10) 촉박한 마감 기한 내에서 JDBC 개선에 우선순위를 둡니다.

예상 답변: 영향을 평가하고, 명확하게 전달하고, 영향이 큰 항목을 먼저 처리하고, SLA를 충족하기 위해 협력하세요.

java

  1. 상위 40가지 Java 멀티스레딩 인터뷰 질문 및 답변 – 2026년판
  2. 자바 메소드 재정의
  3. 자바 PrintWriter 클래스
  4. 자바 캡슐화
  5. 자바 ArrayDeque
  6. 자바 - 메소드
  7. 자바 트리맵
  8. 상위 30개 Struts 인터뷰 질문 및 답변(2026)
  9. 자바 8 - 환경 설정
  10. 자바란? Java 플랫폼의 정의, 의미 및 기능