본문 바로가기
개발/JAVA

JDBC 기초 (PreparedStatement, Driver Manager, Connection)

by 외노자개발 2022. 11. 22.
반응형

JDBC란

JDBC란, 한마디로 Java 프로그램으로부터 데이타베이스를 조작하기 위한 API입니다. 

API는 "Application Programming Interface"의 약자로 간단히 말하면 "연결"이나 "접점"이라는 의미입니다.

 

 

JDBC API

데이터베이스를 조작하기 위한 인터페이스의 모음입니다. JDBC API에 정의된 인터페이스를 사용하여 데이터베이스를 조작하는 프로그램을 작성합니다. JDBC API는 java.sql 및 javax.sql 패키지로 제공됩니다.

JDBC Driver Manager

복수의 JDBC 드라이버를 관리하기 위한 클래스입니다. java.sql 패키지의 DriverManager 클래스로서 제공되고 있습니다.

JDBC Driver API

JDBC 드라이버 관리자와 JDBC 드라이버 간에 제공되는 API입니다. JDBC 드라이버 개발자가 사용합니다.

JDBC Driver

JDBC API로 정의된 인터페이스를 구현한, 데이터베이스를 조작하기 위한 클래스의 모음입니다. 

 

JDBC API를 사용하여 데이터베이스 액세스 시 흐름

1. 데이터베이스의 접속 

2. PreparedStatement의 작성

3. 파라메타의 설정

4. SQL문의 실행

5. 접속 해제

 

 

 

1. 데이터베이스에 연결


데이터베이스에의 접속은, DriverManager 클래스의 getConnection() 메소드 를 사용합니다.

 

getConnection() 메소드의 서식

public static Connection getConnection (String url, String user, String password) throws SQLException

Connection con = null; //연결 객체 정의
url = "jdbc:mysql://HOST[:PORT]/DBNAME[?param=value&param1=value2&..]"
user = "mysql"; // 연결 대상 정보를 나타내는 문자열 정의 
String password = "mysql" ; // 연결 시 사용할 암호 정의

 

DriverManager는 등록된 JDBC 드라이버에서 연결 문자열에 해당하는 JDBC 드라이버를 찾고 해당 JDBC 드라이버를 사용하여 데이터베이스에 연결합니다.

연결이 성공하면 연결 오브젝트인 Connection 오브젝트가 리턴됩니다. 실패하면 SQLException이 발생합니다.

 

JDBC 드라이버 로딩

class.forName();에 의해 JDBC 드라이버 파일의 드라이버 인터페이스를 상속한 클래스가 동적으로 로딩 될때 자동으로 JDBC드라이버 인스턴스가 생성되어 준비 완료

- MySQL : com.mysql.jdbc.Driver

- Oracle : oracle.jdbc.driver.OracleDriver

- MSSQL : com.microsoft.sqlserver.jdbc.SQLServerDriver

 

2. PreparedStatement 작성


PreparedStatement의 작성은, Connection 인터페이스의 prepareStatement() 메소드 를 사용합니다.

 

【prepareStatement() 메소드의 서식】

public PreparedStatement prepareStatement(String sql) throws SQLEXception

Connection con = null; //연결 객체 정의
PreparedStatement stmt = null; //SQL을 저장하는 PreparedStatement 객체 정의
stmt = con.prepareStatement("SELECT ~ FROM ~ WHERE ~") ; //PreparedStatement 객체에 실행하는 SQL을 대입

접속 오브젝트인 Connection 오브젝트의 preparedStatement() 메소드의 인수에 SQL문을 지정해, SQL문을 포함해 실행하기 위한 PreparedStatement 오브젝트를 생성합니다.

 

3. 파라미터 설정


파라미터의 설정은, PreparedStatement 인터페이스의 setInt() 메소드, setString() 메소드 를 사용합니다.

 

【setInt() 메소드의 서식】

public void setInt (int index, int param) throws SQLEXception

【setString() 메소드의 서식】

public void setString (int index, String param) throws SQLEXception

 

PreparedStatement 오브젝트에 포함된 SQL문이 파라미터를 가지는 경우, setInt() 메소드나 setString() 메소드를 이용해 파라미터를 설정합니다.

 

4. SQL 문 실행


SELECT문으로 데이터 검색을 실시하는 경우와, INSERT문, UPDATE문, DELETE문으로 데이터 변경을 실시하는 경우로 나누어 생각합니다.

 

데이터 검색

PreparedStatement 인터페이스의 executeQuery() 메소드를 사용합니다.

 

데이터 변경

PreparedStatement 인터페이스의 executeUpdate() 메소드 를 사용합니다.

 

 

 

5. 연결 닫기


 Connection 인터페이스의 close() 메소드 를 사용합니다.

stmt.close();

 

반응형

'개발 > JAVA' 카테고리의 다른 글

Java HashMap 사용법  (2) 2022.12.05
java 래퍼 클래스 사용 wrapper class  (0) 2022.12.05
Java - Lombok 기초  (0) 2022.11.15
Java - Spring DI 기초부터  (0) 2022.11.04
Java - Collection 핵심만 요약해보자 (List, ArrayList, Map)  (0) 2022.11.04

댓글