데이터베이스 프로그래밍
ㄴ> PL도 프로그래밍인데 오라클 안에서만 쓴다 -> 이걸 Java, Python이나 C 같은 곳에서 연동
1. DB 프로그래밍 - JAVA(일반 -> PC application)
- 일반
- 모바일(안드로이드, 아이폰)
사용자 -> 프로그램을 켜면 -> 실행됨
SQL developer
우리는 간단한 프로그램을 코딩한다
DB에서 테이블을 만들어 놓았다면 프로그램에서 어떻게 사용되는가 맛만 보는 단계!
준비 -> 구축(편집기 설치)
- JDK : 컴파일러 (우리는 이미 설치 함) -> sql developer를 사용하기 위해서
- 이클립스(편집기 : 메모장 같은 것) : 버전은 상관없으나 안에 Edition이 있다. -> 설치형 X, 압축만 풀면 됨
-> ME : Mobile Edition -> 쓰지 않음 : 안드로이드, 아이폰 씀
-> SE : Standard Edition -> 가벼움, PC 전용
-> EE : Enterprise Editon -> 무거움, PC와 Web다 됨 -> 우리가 다운받을 것!
설치형 : 레지스트리
압축형 : 압출만 풀면 되는 압축형의 경우 파일 손상 시 복구가 안 됨
2. DB 프로그래밍 - JSP(웹)
- 클라 : DB보다 더 쉽다. HTML, CSS, JS
- 서버 : JSP
PC platform, 모바일 platform, 웹 platform
이클립스 설치
https://www.eclipse.org/downloads/
Integrate 통합
Development 개발
Environment 환경
-> 메모장 같은 편집기
다운로드 누르면 됨
다운받는 속도가 너무 느리면 아래에 'Select Another Mirror' 누르면
다른 서버 나옴
다 되면 압출 풀기!
C:\eclipse-jee-2020-12-R-win32-x86_64
이렇게까지 뜨면 성공!
이클립스로
① 프로젝트 만들기(Java)
② 소스 파일(클래스) 만들기
③ 코딩
④ 실행
DB-Project (프로젝트) 밑에 소스 파일(클래스)을 만든다.
ㄴ> TestDB.Java (소스파일)
New에 Java Project가 없다면 Other 눌러서 찾기
Finish를 누르면
모듈 어쩌고가 나오는데(14버전 이상)
'Don't Create' -> Open Perspective(지금 요 창에다 열겠다)
name에 'Source_db' 입력
Finish 클릭
1. DB 프로그래밍 - JAVA(일반)
프로젝트 만들기
ojdbc6.jar 링크 : 우클릭 -> Build Path -> Add External Archives...
build : booklist.class로 만드는 것(.exe 같은 느낌)
Path : DB연결 드라이버(ojdbc)가 필요하다
-> DB를 연결해서 bulid 하겠다
만약 없으면
우측 마우스 -> Property -> Java Build Path -> Libraries -> 원하는걸 클릭하고 Add External JARS..
내 경로
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar
.jar -> 압축 파일
코딩하기
DB에서 꺼내기 위한 3 Step
1. 연결(Connection) : Java - DB와 연결
2. 질의(Query X -> Statement 문장) : Select * from book where ~ 날림
3. 결과 담기(result set) : DB에서 쿼리에 맞는 데이터를 가져와서 표현됨 (결과가 여러개라 set)
+
4. 화면 출력
import java.sql.Connection; - java라는 폴더, sql이라는 폴더에 Connection이라는 파일안에 있는 걸 import(수입) 들고 오겠다.
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class booklist {
Connection con; /* 1번 DB와 연결(Connection이라는 클래스와 연결한다.)
클래스는 변수와 메소드(procedure, function)를 가지고 있다. */
public booklist() { /* exec pkg1.proc1() -- pkg1 패키지(클래스), proc1 프로시저(메소드) */
String ur1 = "jdbc:oracle:thin:@localhost:1521:XE"; /* 뒤에 세개는 호스트 이름:포트:SID */
/* 11g express edition은 orcl 대신 XE를 입력한다. */
String userid = "madang";
String pwd = "madang";
try { /* 드라이버를 찾는 과정 */
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("드라이버 로드 성공");
} catch (ClassNotFoundException e) { /* ojdbc.jar를 찾지 못한다면 오류가 난다 */
e.printStackTrace();
}
try { /* 데이터베이스를 연결하는 과정 */
System.out.println("데이터베이스 연결 준비 ...");
con = DriverManager.getConnection(ur1, userid, pwd); -- ojdbc6.jar에 연결(ur1, 아이디, 비밀번호 -> 각각 위에 있음)
System.out.println("데이터베이스 연결 성공");
} catch (SQLException e) { /* 질의문장이 잘못되면 오류가 난다 */
e.printStackTrace();
}
}
private void sqlRun() {
String query = "SELECT * FROM BOOK"; /* SQL문 */
try { /* 데이터베이스에 질의 결과를 가져오는 과정 */
Statement stmt = con.createStatement(); /* 2번 : 질의 날림 */
ResultSet rs = stmt.executeQuery(query); /* 3번 : ResultSet에서 받는다 */
System.out.println("BOOK NO \tBOOK NAME \t\tPUBLISHER \tPRICE");
while (rs.next()) { /* rs가 결과창인데 next 한 줄씩 내려감(Oracle에서 Cursor처럼) */
System.out.print("\t" + rs.getInt(1)); /* 1열 */
System.out.print("\t" + rs.getString(2)); /* 2열 */
System.out.print("\t\t" + rs.getString(3)); /* 3열 */
System.out.println("\t" + rs.getInt(4)); /* 4열 */
} /* print 출력, println 출력하고 줄바꿈 */
con.close();
} catch(SQLException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
booklist so = new booklist();
so.sqlRun();
}
}
실행 하기
실행 결과
Made by 부산IT 윤요섭 강사님
'프로그래밍 > 자바(java) 융합개발자 2차' 카테고리의 다른 글
[Spring 기반 자바(Java) 융합 개발자 2차] 1차 테스트 풀이 (0) | 2020.12.31 |
---|---|
[자바 기초] 12일차 일지 - 데이터베이스 프로그래밍(JSP웹, DB프로그래밍, Apache Tomcat 설치하기, 8080 포트 오류 해결하기) (0) | 2020.12.30 |
[자바 기초] 11일차 일지 1 - TRIGGER(트리거) / INDEX(인덱스) (0) | 2020.12.29 |
[자바 기초] 10일차 일지 2 - Oracle PL/SQL 이어서(ORACLE SUBPROGRAM) (0) | 2020.12.28 |
[자바 기초] 10일차 일지 1 - 6. 데이터 모델링 (0) | 2020.12.28 |