기본 콘텐츠로 건너뛰기

1.03 JDBC(Java Database Connectivity)

JDBC(Java DataBase Connectivity)




0. 개요
1. JDBC 이용 절차



0. 개요: JDBC는 SQL 전송을 표준화, 캡슐화한 것

<다양한 DBMS 사용 시 문제점: DBMS간 코딩 차이 발생>



<JDBC를 이용해서 DBMS에 종속되지 않고, 다형성을 적용 시도>


1. JDBC 이용 절차

1) 접속(DBMS에 접근) = Connectioon
2) SQL 전송              = Statement
3) View(결과 확인)      = ResultSet




<JDBC 절차>



 ※ statement vs. preparedStatement
 - 둘 다 query문 전송하는 역할
 - 둘 다 try ~ catch문을 걸어줘야


 - Statement 객체는 Statement 인터페이스를 구현한 객체를 Connection 클래스의 createStatement( ) 메서드를 호출함으로 얻어짐

 - Statement 객체가 생성되면 executeQuery( ) 메서드를 호출하여 SQL문을 실행시킬 수 있다. 메소드의 인수로 SQL문을 담은 String객체를 전달함

 - Statement는 정적인 쿼리문을 처리할 수 있다
  (즉 쿼리문에 값이 미리 입력되어 있어야 한다)

<Connection Interface API: Statement>


 - PreparedStatement 객체는 Connection 객체의 preparedStatement( ) 메소드를 사용해서 생성한다. 이 메소드는 인수로 SQL문을 담은 String객체가 필요함

 - SQL문장이 미리 컴파일되고, 실행 시간동안 인수값을 위한 공간을 확보할 수 있다는 점에서 Statement 객체와 다름

 - Statement 객체의 SQL은 실행될 때 매번 서버에서 분석해야 하는 반면, PreparedStatement 객체는 한 번 분석되면 재사용이 용이

 - 각각의 인수에 대해 위치홀더(placeholder)를 사용하여 SQL문장을 정의할 수 있게 해준다. 위치홀더는 ? 로 표현

 - 동일한 SQL문을 특정 값만 바꾸어서 여러 번 실행해야 할 때, 인수가 많아서 SQL문을 정리해야 될 필요가 있을 때 사용하면 유용함

<Connection Interface API: preparedStatement>