JDBC와 DB랑 연결하는 방법
[ 1단계] : JDBC 객체 참조 변수 선언 (java.sql 패키지)
( Connection 통로 Statement 옮길 버스 ResultSet 결과값)
- Connection : DB 연결 정보를 담은 객체 / java와 db사이를 연결해주는 일종의 통로(==stream과 비슷하게 생각)
- Statement : connection 객체를 통해 java에서 작성된 sql을 db로 전달하여 수행한 수 결과를 반환 받아 다시 java로 돌아오는 역할의 객체
- ResultSet : SELECT절 의 성공 시 반환되는 결과 행의 집합 (Result Set)을 나타내는 객체
[2단계] : 참조변수에 알맞은 객체 대입하기
Connection 생성하려면 아래 2가지 전제 조건이 모두 만족해야한다.
1. DB연결에 필요한 Oracle JDBC Driver(==DriverManager) 메모리 로드하기
Class.forName("oracle.jdbc.driver.OracleDriver");
ㄴ Oracle JDBC Driver가 어디에 있는지만 알려주면 알아서 메모리 로드
2.연결정보를 담은 Connection을 생성 -> DriverManager가 생성해준다.
conn = DriverManager.getConnection(type + ip + port +sid,user,pw);
ㄴ DB와 JAVA 연결 하기 위한 값
👉 DriverManager : JDBC 드라이버를 통해 커넥션을 만드는 역할
Class.forName() 메소드를 통해 생성되며 반드시 예외처리를 해야하며,
getConneciton() 메소드를 사용하여 인스턴스 생성 가능
ex) conn = DriverManager.getConnection("jdbc:oracle:thin:@localHost:1521","pja","pja1234");
경로 : jdbc:oracle:thin:@localhost:1521:xe
- jdbc : jdbc 라이브러리
- orcal : 오라클로 연결
- thin : 자바로 연결
- @localhost : 내 로컬 호스트 ip
- xe : 리스너
String type = "jdbc:oracle:thin:@"; String ip = "localhost"; // DB 서버 컴퓨터 IP String port = ":1521"; String sid = ":xe"; //DB 이름 String user = "pja"; // 사용자명 String pw = "pja1234"; //비밀번호 |
[3단계] : Statement 생성 (버스)
● 커넥션을 왔다갔다 하는 셔틀 버스 같은 역할
[4단계] ResultSet 반환받기
● excuteQuery : SELECT 문 수행 후 ResultSet 결과를 반환
[5단계] 결과를 ResultSet 옮겨 담기
● SQL을 statement에 적재 후 DB로 전달하여 수행, 결과를 반환 받아 rs 변수에 대입
[6단계] 참조하고 있는 ResultSet 첫번재 칼럼부터 순서대로 객체의 행 가져오기
● rs.next(): : 참조하고 있는 ResultSet 객체의 첫번째 칼럼부터 순서대로 한행 씩 이동하여 다음행이 있을 경우 true 반환
● rs.get[Type]("칼럼명") : 현재 가르키고 있는 행의 특정 칼럼 값을 얻어옴
ㄴ [Type] 은 DB에서 얻어와 Java에 저장할 자료형
ex) int empId = rs.getInt("EMP_ID");
[7단계] JDBC 객체 자원 반환 (Close)
● 생성 순서 : Connection(통로),Statement(데이터 왔다갔다),ResultSet(결과 받아올)
● 반환 순서 : ResultSet, Statement, Connection
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
모듈화(유지보수,협업에 용이함)
- RUN : 실행용 클래스
- View(손님) : 키보드 입력(Scanner), 콘솔화면출력(Print)
- service(종원업) : 기능제공 메소드
- DAO(주방장): DB 연결용 클래스 (SQL, JDBC)
- VO : 값 저장용 객체
'ON > JDBC' 카테고리의 다른 글
[JDBC] 모듈화 진행하기 (0) | 2023.05.31 |
---|---|
[JDBC] XML | XML 연결 세팅하기 (1) | 2023.05.30 |
[JDBC] Statement | PreparedStatement 차이 (0) | 2023.05.29 |
[JDBC] 개발환경 구축 및 이클립스 라이브러리 추가 (0) | 2023.05.26 |