Programming Languages/Java

[Java] - JDBC를 사용하여 데이터베이스 연결 (오라클db)

Jesse 2021. 4. 5. 02:32

JDBC ( Java Database Connectivity )

JDBC는 자바에서 데이터베이스에 접속할수 있도록 도와주는 API 입니다.

자바에서 데이터베이스에 접속하기 위해선 컴퓨터에 데이터를 관리하는 소프트웨어인 DBMS(Database Management System)이 설치되어 있어야 합니다. 예를 들면, mariadb, 오라클db, mysql 같은 것들이 DBMS 프로그램들입니다.

참고로 제 컴퓨터에는 오라클db가 설치되어 있습니다.

만약 오라클db가 설치되어 있지 않다면, 아래 링크에서 다운 받으시면 됩니다.

* 다운 받기 위해서는 오라클에 회원가입이 필요합니다.

https://www.oracle.com/database/technologies/xe-downloads.html

ㅇ

JDBC ( Java Database Connectivity )

JDBC는 자바에서 데이터베이스에 접속할수 있도록 도와주는 API 입니다.

 

자바에서 데이터베이스에 접속하기 위해선 컴퓨터에 데이터를 관리하는 소프트웨어인 DBMS(Database Management System)이 설치되어 있어야 합니다. 예를 들면, mariadb, 오라클db, mysql 같은 것들이 DBMS 프로그램들입니다.

 

참고로 제 컴퓨터에는 오라클db가 설치되어 있습니다.

만약 오라클db가 설치되어 있지 않다면, 아래 링크에서 다운 받으시면 됩니다.

* 다운 받기 위해서는 오라클에 회원가입이 필요합니다.

https://www.oracle.com/database/technologies/xe-downloads.html

* 설치할때 administrator의 이름과 password를 설정해야 하는데 반드시 기억해두셔야 합니다.

저는 administrator의 이름을 system으로 했습니다.

설치가 끝나면 "Run SQL Command Line"을 실행합니다.

자 그럼, 위 사진처럼 connect -> Enter키 -> user-name과 password를 기입 -> Enter키

하면 Connected라고 뜹니다.

이후에 create user [이름] identified by [패스워드]; 를 하여 유저를 생성하고 (저는 scott과 tiger로 했습니다.)

grant connect, resource to [이름];으로 권한을 부여 하시면 됩니다.

 

그림을 보시면 JDBC에서 각 데이터베이스에 맞는 Driver를 사용중인걸 알수 있습니다.

JDBC는 어떤 DBMS에 접속하는지에 따라 다른 Driver를 사용합니다.

저는 오라클db를 사용중이며 오라클db에 맞는 드라이버는 아래에 첨부 하였습니다.

ojdbc6.jar
2.05MB

이클립스에서 오라클db 연결하기

이클립스에서 Data Source Explorer를 찾습니다.

Database Connections를 우클릭 한 후에 New를 선택합니다.

 

Connection Profile Types에서 Oracle을 선택하시고

Name은 원하시는걸로 정하면 됩니다. 

Next 버튼을 누르면,

 

오른쪽 구석에 있는 동그란 버튼을 클릭합니다.

 

 

Oracle Thin Driver 11을 찾으시고

 

 

Add JAR/Zip을 클릭하고 아까 다운 받은 ojdbc6 드라이버를 컴퓨터에서 찾아서 선택합니다.

 

Service Name을 xe로 설정하시고

Host는 127.0.0.1 (localhost 즉 자신의 컴퓨터를 의미합니다)

Port number는 1521

user name과 password는 아까 Run SQL Command Line에서 설정한 유저 네임과 패스워드를 사용합니다.

*저는 scott과 tiger를 사용했습니다.

Finish를 누르고 Data Source Explorer를 다시 보면,

이렇게 Database Connections 아래에 새로운 연결 프로필이 생성된게 보일 겁니다.

우클릭을 해서 Connect를 누르면 연결 됩니다.

자, 이제 자바에서 JDBC를 통해 데이터베이스에 접속해보겠습니다.

package step3;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class TestJDBC3 {
	public static void main(String[] args) {
		String driver = "oracle.jdbc.OracleDriver";
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
		try {
			Class.forName(driver);
			Connection con = DriverManager.getConnection(url,"scott","tiger");
			String sql = "insert into member values(?,?,?,?)";
			PreparedStatement pstmt = con.prepareStatement(sql);
			pstmt.setString(1, "조세");
			pstmt.setString(2, "무리뉴");
			pstmt.setString(3, "176");
			pstmt.setString(4, "75kg");
			int result = pstmt.executeUpdate();
			System.out.println("등록된 회원수: "+result);
			pstmt.close();
			con.close();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
}

Class.forName를 이용하여 드라이버를 불러오고

Connection 객체를 통해 연결하고

Preparedstatement 객체로 String으로 된 SQL 문을 처리하였습니다.