교육 (Today I Learned)/SeSAC

SeSAC 29일차 / JDBC

Bay Im 2023. 8. 26. 15:55
SeSAC 29일차(2023-08-25)
JDBC


 

이클립스 zip 파일 import 하기

  1. File → import
  2. General → Existing Projects into Workspace
  3. Select archive file: → Browse… 선택 후 zip 파일 선택
  4. 생성 완료

 

JDBC

  • 오라클 설치 정보
    • SID: hr
    • 사용자 이름: SYSTEM
    • 비밀번호: hr
  • 오라클 연결
    • cmd 실행 후 sqlplus 입력
    • SYSTEM, hr 입력 시 접속
    • conn SYSTEM/hr 입력 시 연결
  • 이클립스와 오라클 연결
// JDBC와 오라클 연결 확인
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBconn {
	public static void main(String[] args) {
		String driver = "oracle.jdbc.driver.OracleDriver";
		String url = "jdbc:oracle:thin:@localhost:1521:hr";
		String user = "SYSTEM";
		String password = "hr";
		
		try {
			//driver 로딩
			Class.forName(driver);
			System.out.println("jdbc driver 로딩 성공");
			//DB와 연결
			DriverManager.getConnection(url, user, password);
			System.out.println("오라클 연결 성공");
		} catch (ClassNotFoundException e) {
			System.out.println("jdbc driver 로딩 실패");
		} catch (SQLException e) {
			System.out.println("오라클 연결 실패");
		}
	}
}
  • Connection
    • 자바와 DB를 연결하기 위한 객체
    • Class.forName()
      • DB와 연결한 드라이버 클래스를 찾아서 로드하는 역할
      • ex) Class.forName("oracle.jdbc.driver.OracleDriver");
    • Connection conn = DriverManager.getConnection(url, id, pw)
      • conn에 생성된 Connection 객체 대입
  • Statement
    • Statement란 Connection으로 연결할 객체에게 쿼리 작업을 실행하기 위한 객체
    • Statement 객체를 생성하기 위해서는 Connection이 먼저 연결되어야 한다.
    • Statement stmt = conn.createStatement();
      • Statement 객체 생성
    • executeUpdate(String sql)
      • 조회문(select 등)을 제외한 insert, delete, update, create, drop 등의 문을 처리할 때 사용
      • ex) String sql = ”drop table tablename”;
      • int result = stmt.executeUpdate(sql);
    • executeQuery(String sql)
      • 조회문(select 등)을 실행할 목적으로 사용
      • ex) String sql = “”select * from tablename”;
      • int result = stmt.executeQuery(sql);
    • 데이터 출력 (get data)
      • while (result.next()) {
        • board = new Board(result.getInt(1), result.getString(2), result.getString(3),…) }
      • System.out.println(board);
      • result.close()
    • stmt, conn 사용 이후에는 close 해주기
      • stmt.close();
      • conn.close();

 

메소드 오버로딩

  • 메소드 오버로딩(method overloading)
    • 같은 이름의 메소드를 중복하여 정의하는 것
    • 같은 이름의 메소드지만, 매개변수의 타입이나 개수를 다르게 한다.
// 메소드 오버로딩(method overloading)
	public Board(int num, String name, String email, String pwd, String subject, String content, Date regdate, int hit,
			int parent, int sort, int tab, String original) {
		this(name, email, pwd, subject, content, hit, sort, tab, original);
		this.num = num;
		this.parent = parent;
		this.regdate = regdate;
	}
	
	public Board(String name, String email, String pwd, String subject, String content, int hit, int sort, int tab, String original) {
		this.name = name;
		this.email = email;
		this.pwd = pwd;
		this.subject = subject;
		this.content = content;
		this.hit = hit;
		this.sort = sort;
		this.tab = tab;
		this.original = original;
	}

 

오늘의 실습 코드

https://github.com/yubin-im/SeSAC/tree/7a06961bb97315a904c448f28bd8db8f6a840e41/20230825/test/jdbc

 

 

728x90

'교육 (Today I Learned) > SeSAC' 카테고리의 다른 글

SeSAC 31일차 / HTML  (1) 2023.08.29
SeSAC 30일차 / Connection Pool  (0) 2023.08.28
SeSAC 28일차 / JDBC  (0) 2023.08.25
SeSAC 27일차 / 정렬 알고리즘, 탐색  (0) 2023.08.25
SeSAC 26일차 / 정렬 알고리즘  (0) 2023.08.25