SeSAC 29일차(2023-08-25)
JDBC
이클립스 zip 파일 import 하기
- File → import
- General → Existing Projects into Workspace
- Select archive file: → Browse… 선택 후 zip 파일 선택
- 생성 완료
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()
- while (result.next()) {
- 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 |