yooniiverse
개발 블로그
yooniiverse
전체 방문자
오늘
어제
  • 분류 전체보기
    • 운영체제
    • 네트워크
    • ~2023.02
      • 외부교육
      • 대외활동
      • 스터디
      • 동아리
      • TIL
      • IT지식
      • 기타
      • 트러블 슈팅
      • 프로그래밍
      • Python
      • Java
      • JS
      • DB(SQL)
      • JSP
      • Spring
      • 기술면접
      • 자바
      • 코딩테스트
      • 자료구조
      • 알고리즘
      • 백준 문제풀이
      • 인공지능
      • 머신러닝
      • 프로젝트
      • 안드로이드 앱개발
      • 웹개발
      • 웹 서비스
      • 웹퍼블리싱
      • Node.js 백엔드 개발
      • CS
      • 1일 1CS지식
      • 운영체제
      • 네트워크
      • 데이터베이스
      • 정보처리기사
      • 도서 리뷰
      • 개발 관련 도서
      • 기타 도서

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
yooniiverse

개발 블로그

JDBC_01
~2023.02/DB(SQL)

JDBC_01

2022. 4. 28. 16:27

1. JDBC 기본


  • JDBC(Java Database Connectivity)
    • java library(java class)로써 db에 접속하여 CRUD 기능을 수행할 수 있는 API(Application Program Interface)이다.
package sec01.exam01_jdbc;

import java.sql.*;

public class JDBC_Connect01 {

	public static void main(String[] args) {

		/** ORACLE JDBC Driver Test ***************************/
		String driver = "oracle.jdbc.driver.OracleDriver";
		/******************************************************/

		/** My-SQL JDBC Driver Test **************************/
		// String driver ="com.mysql.jdbc.Driver";
		/*****************************************************/

		try {
			Class.forName(driver);
			System.out.println("JDBC Driver Loading 성공~!!");

		} catch (Exception e) {
			System.out.println("JDBC Driver Loading 실패~!!");
			e.printStackTrace();
		}
	}
}

 

 

2. JDBC Connection


2-1. forName

package sec01.exam01_jdbc;

public class JDBC_Connect01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 지역변수
		String driver = "oracle.jdbc.driver.OracleDriver";
		
		try {
			// 예외가 발생할 수 있는 코드 입력
			Class.forName(driver);
			System.out.println("JDBC Driver Loading 성공~");
		} catch(Exception e) {
			// 예외 처리 코드 입력
			System.out.println("JDBC Driver Loading 실패~");
			e.printStackTrace();
		}
	}

}

https://docs.oracle.com/javase/8/docs/api/index.html java.lang -> classes -> class -> forname

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html#forName(java.lang.String) 

2-2. Connection

  • Class 구성 멤버
    • 필드
    • 생성자
    • 메소드
  • Interface 구성 멤버
    • 상수
    • 추상 메소드
    • 디폴트 메소드
    • 정적 메소드
package sec01.exam01_jdbc;

import java.sql.Connection;
import java.sql.DriverManager;

public class JDBC_Connect02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String driver = "oracle.jdbc.driver.OracleDriver2";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		
		// 인터페이스 변수 = null;
		// 인터페이스 변수 = (해당 인터페이스의)구현객체;
		Connection con = null;
		
		try {
			// 예외발생 가능 코드
			Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
			con = DriverManager.getConnection(url, "SCOTT", "TIGER");
			System.out.println("데이터베이스 연결 성공~");
		} catch (Exception e) {
			// 예외처리 코드
			System.out.println("데이터베이스 연결 실패~");
		}
	}

}

https://docs.oracle.com/javase/8/docs/api/index.html java.sql -> interface -> Connection

https://docs.oracle.com/en/java/javase/17/docs/api/java.sql/java/sql/DriverManager.html#getConnection(java.lang.String,java.lang.String,java.lang.String) DriverManager.getConnection

 

 

3. JDBC insert


3-1. Eclipse

package sec01.exam01_jdbc;

import java.io.BufferedReader; // 문자 기반의 입출력 보조 시스템
import java.io.InputStreamReader; // ctrl + shift + o
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBC_Insert {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		
		// 인터페이스 변수 = null;
		// 인터페이스 변수 = (해당 인터페이스의)구현객체;
		Connection con = null;
		Statement stmt = null;
		
		String sql, name, email, tel, no;
		
		try {
			// 예외발생 가능 코드
			// 1. OracleDriver 객체를 생성
			Class.forName(driver); // 클래스(OracleDriver) 객체를 생성한다.
			// 2. Connection 객체를 생성
			con = DriverManager.getConnection(url, "SCOTT", "TIGER");
			
			// 인터페이스 변수 = 구현객체;
			// 3. Statement 객체를 생성
			stmt = con.createStatement();
			
			// 테이블에 추가할 내용을 콘솔 창에서 사용자의 입력을 받도록 한다.
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			
			System.out.println("customer 테이블에 값 입력하기...");
			System.out.print("번호 입력: ");
			no = br.readLine();
			System.out.print("이름 입력: ");
			name = br.readLine();
			System.out.print("이메일 입력: ");
			email = br.readLine();
			System.out.print("전화번호 입력: ");
			tel = br.readLine();
			
			// insert문을 작성
			sql = "insert into customer(no, name, email, tel) values";
			sql += "("+no+ ", '"+name+"', '"+email+"', '"+tel +"')";
			
			// 4. Statement 객체의 executeUpdate() 메소드로 sql문 실행
			int res = stmt.executeUpdate(sql);
			if (res==1) {
				System.out.println("Data insert success!");
			} else {
				System.out.println("Data insert failed!");
			}
		} catch (Exception e) {
			// 예외처리 코드
			System.out.println("데이터베이스 연결 실패~");
			e.printStackTrace();
		} finally {
			// 5. db resource(statement 객체, connection 객체)를 메모리에서 제거
			try {
				if(stmt!=null) {
					stmt.close();
				}
				if(con!=null) {
					con.close();
				}
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e.getMessage());
			}
		}
	}

}

3-2. SQL Developer

create table customer (
    no number(10),
    name varchar2(20),
    email varchar2(20),
    tel varchar2(20)
);

insert into customer(no, name, email, tel)
values (1, 'hong', 'hong@naver.com', '010-1111-2222');

select * from customer;

실행 결과

3-3. Eclipse

값 입력

3-4. SQL Developer

실행 결과

 

'~2023.02 > DB(SQL)' 카테고리의 다른 글

서브 쿼리란? (SELECT절 서브 쿼리, FROM절 서브 쿼리, WHERE절 서브 쿼리)  (0) 2022.10.08
JDBC_02  (0) 2022.04.29
패키지  (0) 2022.04.15
커서와 트리거  (0) 2022.04.14
저장 프로시저와 저장 함수  (0) 2022.04.14
    '~2023.02/DB(SQL)' 카테고리의 다른 글
    • 서브 쿼리란? (SELECT절 서브 쿼리, FROM절 서브 쿼리, WHERE절 서브 쿼리)
    • JDBC_02
    • 패키지
    • 커서와 트리거
    yooniiverse
    yooniiverse

    티스토리툴바