JDBC 기초중에 기초!-1

정유진·2023년 5월 17일

데이터베이스

목록 보기
1/3

JDBC란?

JDBC는 java에서 database system과 SQL 쿼리를 통해 소통할 수 있도록 하는 Java API이다. Java 코드를 작성하면서 DB에 접근하고 수정할 수 있도록 하는 여러 class들과 함수들을 지원한다.

다음은 예시 코드이다. 이와 같은 식으로 Java에서 SQL 쿼리를 사용하여 데이터베이스를 관리할 수 있다.

import java.sql.*;
...

public static void JDBC_ex(...)
{
  try (Connection conn = DriverManager.getConnection( 
"jdbc:oracle:thin:@db.test.edu:2000:testdb", userid, passwd); 
Statement stmt = conn.createStatement();
  ) 
 { 
… Work ….
  conn.close();
 }
catch (SQLException sqle) { 
System.out.println("SQLException : " + sqle);
 }
}

1) import java.sql.*;

위 코드에서 보듯이, JDBC를 Java 코드 내에서 사용하기 위해서는 java.sql 패키지를 import해야 한다. asterisk(*)를 사용하지 않고 특정 클래스만 불러오게 할 수도 있다.

2) Connection

JDBC를 import한 후에는, 어떤 데이터베이스에 접근할 것인지 특정하고 연결하는 과정이 필요하다. Connection 객체를 생성해 데이터베이스에 접근 및 연결을 종료하는 과정을 관리한다. 즉, 연결(connection)을 만드는 것이다.

Connection conn = DriverManager.getConnection( 
"jdbc:oracle:thin:@db.test.edu:2000:testdb", userid, passwd); 

...

conn.close();

다음은 Connection 객체를 생성하는 Java 코드이다. Connection 객체 conn을 선언하고, DriverManager 클래스의 getConnection() 함수 내 해당 데이터베이스에 관한 정보를 인수로 전달함으로써 conn을 정의한다.

getConnection()에 들어갈 정보는 3개로, 순서대로 어떤 데이터베이스에 연결해야 하는지, DB의 userid, DB의 password를 인수로 넣는다.

3) Statement

Java로 이루어진 코드 안에서, 큰 따옴표("") 안에 SQL query를 넣고 실행하기 위해서는 Statement라는 객체가 필요하다.

예를 들면 이런 식으로 사용된다.

stmt.executeUpdate(
"insert into instructor values('77987', 'Kim', 'Physics', 98000)");

Statment 객체인 stmt의 executeUpdate() 함수를 통해, DB 내 instructor 테이블(relation)에 새 튜플을 삽입하는 과정이다.

Statment 객체 stmt는 다음과 같이 선언 및 정의한다.

Statement stmt = conn.createStatement();

아까 생성해 주었던 Connection 객체 conn의 createStatement() 함수를 사용하여 statement 객체를 생성(create)한다. stmt를 통해 작성한 SQL 쿼리를, testdb에 전달해야 하기 때문이다.

0개의 댓글