JDBC
JDBC란 자바에서 데이터베이스를 연결하고 그 안에 있는 데이터를 가져오기 위해 사용하는 자바 API를 말한다.
DB에는 Oracle뿐만 아니라 MY SQL 등 다양한 종류의 DB들이 있을텐데
이 DB에 접근하기 위한 함수는 DB마다 다를 것이다.
하지만 이때 JDBC를 사용한다면 DBMS에 접근하기 위해 코드를 바꿀 필요가 없어진다.
기본 설치와 연동
1) Oracle DataBase 설치
2) Oracle SQL Developer 설치
: 사용자 이름이 sys로 연결이 되지 않는다면 sys as sysdba로 연결 (But, 이러면 시퀀스같은 기능 사용못함)
※계정을 하나 생성하는 것이 좋다.(cmd에 입력)※
▶▷ sqlplus
▶▷ Enter user-name: sys as sysdb 후 비밀번호 입력
▶ ▷ SQL> CREATE USER 계정 이름 IDENTIFIED BY 계정 비밀번호
2 DEFAULT TABLESPACE users
3 TEMPORARY TABLESPACE temp;
▶ ▷ SQL> GRANT CONNECT,RESOURCE TO 계정 이름; (모든 권환 부여)
3) Oracle DataBase와 같은 버전의 JDBC Driver 설치
4) 새로운 Java Project를 만든 후 프로젝트를 우클릭하면 Bild Path의 Configure Bild Path를 선택
5) Libraries 탭의 Modulepath에서 ADD External JARs 선택 후 설치한 JDBC Driver를 선택 후 적용
JDBC를 연결하기 위해서는 다음과 같다.
1) 드라이버 로드하기
Class.forName("oracle.jdbc.driver.OracleDriver");
2) 연결 생성하기
Connection con = DriverManager.getConnection(url,"사용자 이름","비밀번호");
3) 문장 실행하기
Statement st = con.createStatement();
4) 결과집합 사용하기
ResultSet rs = st.executeQuery(sql);
클라이언트는 레코드 단위로 커서를 사용해서 한 줄씩 결과를 받는다.
5) 다음 줄의 결과를 받는다. 그리고 TITLE 컬럼에 해당하는 문자열을 출력한다.
rs.next();
String title = rs.getString("TITLE");
System.out.println(title);
<전체 코드>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Program {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String url = "jdbc:oracle:thin:@localhost:1521/xe";
String sql = "SELECT * FROM NOTICE";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url,"사용자 이름","비밀번호");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
// next()가 값을 정상적으로 가져왔으면 true, 그렇지 않으면 false 반환
// -> 가져온게 없으면 false니까 {} 안에는 실행되지 않음
if(rs.next()) {
// 컬럼명은 대문자, 소문자 구분하지 않음
String title = rs.getString("TITLE");
System.out.println(title);
}
rs.close();
st.close();
con.close();
}
}
자바는 UI 레이아웃만 데이터 가공처리는 SQL이 해야한다는 점을 생각하자.
'강의 정리하기 > JDBC' 카테고리의 다른 글
뉴렉처 JDBC 예제 코드 (0) | 2023.03.17 |
---|---|
데이터 수정, 삭제하기 (0) | 2023.03.15 |
데이터 입력하기 (1) | 2023.03.15 |