본문 바로가기
웹 프로그래밍 기초/자바기반의 웹&앱 응용SW 개발자

자바기반의 웹&앱 응용 SW개발자 양성과정 28일차 -47

by oncerun 2020. 4. 8.
반응형

 

JDBC(Java Database Connectivity) 연습하기

1) JDBC란?

자바에서 DB 프로그래밍을 하기 위해서 사용되는 API입니다.

 

JDBC API를 사용하면 데이터베이스 종류와 상관없이 알맞은 JDBC DRIVER만 BULID PATH 해준다면 언제든지 자바에서 DB 프로그래밍을 할 수 있습니다.

 

 JDBC DRIVER- 각 DBMS에 알맞은 클라이언트

 

오라클 DBMS를 사용하므로 오라클 사이트에 접속해서 ORACLE JDBC DRIVER을 설치해준 뒤

이클립스에서 라이브러리를 추가합니다.

 

JDBC 프로그래밍을 JAVA에서 사용하기 위해선

먼저 JDBC 드라이버를 로드합니다.

자바에서는 DB을 사용하기 위해 4가지의 클래스를 준비했습니다.





첫 번째는 DriverManager입니다.

1. 드라이버 로드하기 

 

Class.forName("oracle.jdbc.driver.OracleDriver")를 이용해서 Driver Class를 로딩하게 되면 객체가 생성되고,

DriverManager에 Oracle JDBC 드라이버가 로딩됩니다.

DriverManager 클래스는 JDBC 드라이버를 통하여 데이터베이스와 연결하는 객체를 생성합니다.

로딩을 했다면 다음은 db에 연결을 해야 합니다.

 

두 번째는 Connection입니다.

2. 연결 생성하기

 

Connection con은 데이터 베이스와 연결을 하는 객체입니다.

con = DriverManager.getConnection(연결할 데이터베이스, DB_ID, DB_PASSWORD)로 연결할 객체를 생성합니다.

연결할 데이터 베이스 입력 문자열 : jdbc:Driver종류:@IP:포트번호/DB명을 입력합니다.

 

세 번째는 Statement입니다.

3. 문장 실행하기

 

DB에 연결된 객체를 가지고 DB에 SQL문으로 보내기 위한 객체를 생성합니다.

Statement st = con.createStatement()를 이용해 SQL문을 데이터베이스로 보내기 위한 객체를 생성합니다.

 

네 번째는 ResultSet입니다.

4. 결과 집합 사용하기

 

ResultSet =rs;

ResultSet은 SQL문을 보내서 받은 결괏값을 데이터 표로 나타내는 객체입니다.

ResultSet은  커서가 있는데 첫 번째 행 전부터 마지막행 다음까지 이동하면서 읽을 데이터 행이 존재할 때는

true, 없을 때는 false를 반환하는 rs.next();라는 메서드가 있습니다.

rs = st.executeQuery(sql문); st를 이용해 SQL문을 DB에 보내 결괏값을 데이터 표로 저장합니다.

SQL문 : SELECT * FROM TABLE과 같이 SQL 질의문입니다.

 

 

 

다음은 JAVA 애플리케이션에서 ORACLE DB에 접근해 ID를 입력하면 정보를 주는 JAVA CODE입니다.

package ex01.basic;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class Program {

	public static void main(String[] args) throws SQLException {
		String search;
		String id;
		String pwd;
		String name;
		String gender;
			
				Scanner scan = new Scanner(System.in);
				search = scan.next();
				String sql = "SELECT * FROM MEMBER WHERE ID = '"+search+"'  " ;
				String url = "jdbc:oracle:thin:@192.168.0.19:1521/xepdb1";
				Connection con = DriverManager.getConnection(url,"lec","111");
				Statement st = con.createStatement();
				ResultSet rs = st.executeQuery(sql); 
				
				rs.next(); //한줄만
				System.out.println("id를 입력하세요");
				
				id = rs.getString("id");
				pwd = rs.getString("pwd");
				name = rs.getString("name");
				gender = rs.getString("gender");
				
				System.out.printf("id : %s , pwd : %s, name : %s gender : %s ",id, pwd, name,gender);
				
	}

}
반응형

댓글