Oracle과 Java 연결 방법 => JDBC
SQL DEVELOPER
해당 테이블 생성
CREATE TABLE bigmember(
id varchar2(50) primary key
, pw varchar2(100) not null
, name varchar2(100) not null
, age number
, score number
);
COMMIT;
SELECT * FROM BIGMEMBER;
Eclipse
package JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Ex01_Join {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 사용자에게 회원가입 정보 입력받기
// ID, PW, 이름, 나이
System.out.print("ID 입력 : ");
String id = sc.next();
System.out.print("PW 입력 : ");
String pw = sc.next();
System.out.print("이름 입력 : ");
String name = sc.next();
System.out.print("나이 입력 : ");
int age = sc.nextInt();
System.out.print("점수 입력 : ");
int score = sc.nextInt();
// JDBC(Java Database Connectivity)
// : JDBC 인터페이스 사용방법
// try - catch : 예외처리 구문
// 예외상황이 발생하더라도 실행을 멈추지 않음!
// try 구문
// --> 예외가 발생할 수도 있지만, 우선 시도해보는 구간
// try 안에 있던 지역변수를 전역변수로 빼줘야 함.
// 초기화하지 않으면 오류나기 때문에 초기화 필수!
// 레퍼런스 타입은 기본형이 null임.
PreparedStatement psmt = null;
Connection conn = null;
try {
// 1. 드라이버 로딩
// JDBC 드라이버란?
// : Java에서 제공해주는 인터페이스들을 데이터베이스 회사들에서
// 상속을 받아서 로직을 구현한 클래스 파일들의 모음
// -->파일 이름은 대소문자 구분해서 정확하게 입력!!!!
Class.forName("oracle.jdbc.driver.OracleDriver");
// -->반드시, 프로젝트에 jar 파일 넣어주기
// *jar 파일이란?
// 클래스 파일들을 여러 개 모아놓은 압축파일
// *프로젝트에 jar파일 추가하는 방법?
// 프로젝트 선택 -> 마우스 우클릭 -> build path
// -> configure build path -> libraries 탭 선택
// -> class path 선택 -> 우측에 add external jars 버튼꾹
// -> 원하는 jar파일 경로 선택 -> apply and close
// 2. 데이터베이스 연결
// 준비물 3개
// 1) 연결 경로
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// JDBC 드라이버가 thin타입이다.
// @localhost --> ip주소
// 1521 --> port 번호
// xe --> DB 별칭
// 2) user name
String user = "service";
// 3) 계정 비밀번호
String password = "12345";
conn = DriverManager.getConnection(url, user, password);
// Connection이란?
// : 데이터베이스에 접속하기 위한 모든 메소드를 가진 인터페이스
// -->데이터베이스와 하는 모든 통신은 conn을 통해서만 이루어진다.
// -->사용가능한 테이블 목록, 컬럼들에 대한 정보 등
// 연결된 데이터베이스의 정보들을 전부 가지고 있음
// 3. SQL문 준비
// 회원가입 -> BIGMEMBER테이블에 데이터를 추가
// INSERT 구문이 필요
String sql = "INSERT INTO BIGMEMBER VALUSE(?, ?, ?, ?, ?)";
// ?인자
// : 사용자로부터 어떤 데이터가 들어올지 모를 때 사용
// : 지정한 데이터의 공간만큼 비워놓고 실행하기 전까지 대기
// 4. SQL문 전송(실행)
// 전송하기 전에 SQL문을 담아서 전송할 수 있는 형식으로 변경
psmt = conn.prepareStatement(sql);
// ?인자 채우는 작업 진행(반드시 실행 전에 진행할 것)
// 데이터 바인딩(data binding) 작업
psmt.setString(1, id);
psmt.setString(2, pw);
psmt.setString(3, name);
psmt.setInt(4, age);
psmt.setInt(5, score);
// 실행
int row = psmt.executeUpdate();
// executeUpdate() : insert, update, delete->DML에 사용
// 5. 결과를 이용한 작업처리
// 사용자에게 어떤 결과를 보여줄지 정의
if (row > 0) {
System.out.println("회원가입 성공 : ");
} else {
System.out.println("회원가입 실패");
}
} catch (Exception e) {
// -->모든 예외클래스는 Exception을 상속받는다.
// -->Exception e = new ClassNotFoundException();
// -->UpCasting 일어나는 개념
// catch 구문
// -->예외가 발생했을 때 어떤 로직을 수행할 지 작성하는 구간
// -->()안에 있는 매개변수, 어떤 예외상황을 잡아줄지 기술하는 공간
e.printStackTrace();
// 예외상황이 왜 발생했고, 어디서 문제가 나고 있는지
// 출력해주는 구문 --> 개발할때만 사용하기
// -->배포할 때는 삭제하는 것이 좋음!
} finally {
// 위에서 예외상황이 발생하더라도 반드시 한 번은 들어오는 구간
// 6. DB 연결 종료 --> 자원 반납
try {
//자원을 반납할 때는 항상 열어준 순서의 반대로 반납한다.
// if문 안쪽에 실행구문이 하나일 경우 중괄호 생략 가능하다.
if (psmt != null)
psmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
SQL DEVELOPER
'언어 > JAVA' 카테고리의 다른 글
MVC 디자인 패턴 (1) | 2023.03.15 |
---|---|
JDBC_로그인 (0) | 2023.03.15 |
Interface(인터페이스) (0) | 2023.03.13 |
OOP_추상화 (0) | 2023.03.11 |
OOP_상속 (0) | 2023.03.11 |
댓글