C:\app\17\product\11.1.0\db_1\jdbc\lib\ojdbc6.jar
ojdbc6.jar
C:\Program Files\Java\jdk1.7.0_60\jre\lib\ext
자바, 오라클, ADK, Eclipse 설치 후 C:드라이브의 루트 폴더 상태
app 폴더
오라클 설치가 안되는 경우 중앙 컴터 오라클로 접속
1. 방화벽 풀어줌.
---------------
DML
commit;
커밋을 해주어야 데이터가 파일에 저장된다.
DB에 영구 적으로 적용하겠다. ( <--> rollback)
JDBC => 1 sql = 1 transaction ( 단위 ) 자동으로 commit 커밋이된다.
여기에는 맹점이 있다.
서버프로그램밍은 차후에;
트렌젝션 ? 분리되어서는 안될 (논리적) 작업단위.
은행에서 이체할 때 더 많은 DML이 수행됨.
***************************************
* A -> B *
* (update) (update) *
***************************************
자가업단위에 속하는 모든 프로세스가 수행되어야만 마지막에 commit가 된다.
그래서
JDBC => 1 sql = 1 transaction ( 단위 ) 와 같이 1:1 맵핑하면 문제가 된다.
1:다가 될 수도 있다.
commit <--> rollback 는 반되되는 메소드다.
SQL의 기본값은 1개 처리하고 commit한다.
기본값은 setautoCommit() ?가 auto로 되어있다.
프로그램밍과 달리 데이터베이스 인덱스는 1부터 시작한다.
마지막으로 연결객체를 closing를 해주어야한다. (이 작업이 없으면 객체가 원격상에 있는 서버 메모리에 쌓인다. 종국에는 블루스크린을 보여주고 중지된다.) closeAll();
JVM에 있는 가비지컬렉터가 위 명령어를 통해서 자원을 회수해서 확보한다.
현재 컴터는 물리적으로 한 개 컴터에서 JVM과 ORACLE 두 가지 시스템이 돌아간다.
실제로는 데이터 안전성을 확보하기 위해서 JVM과 DB가 물리적으로 떨어져 있다. 이럴 경우 백업 DB를 만들기도 쉽다.
자바 서버프로그래밍은 5 단계가 있다.
1.
2
3.
4. DQL
5. closeall(); 연결 객체 닫기
--------------------------------------------------
android(인터페이스; 클라이언트측) <--> oracle(Driver; 서버측) 가 가능하다. 있긴 있다. 그러나 오라클은 달가와하지 않는다.
그래서
android <->[ View(JSP / ..) -> Controller -> Model ] -> Oracle 로 처리한다.
Model -> Oracle 오늘 여기에서 놀았다. 막코딩을 하면서 ~. 실제는 훨 많은 프로세스가 있다.
android or WEB or .... (;클라이언트 측) <->[ View(JSP / ..) -> Controller -> Model ] -> Oracle
그래서 안드로이드에서 현실적으로 오라클에 바로 연결할 수는 없다.
오라클에서 껍데기 즉 인터페이스만을 만들어 놓고 알곡을 채워놓지 않았다.
혹은 오라클에서 껍데기 즉 인터페이스만을 만들어 놓고 비공개, .... 잘 구현해 놓지 않았다.
오라클社가 구연해야할 아무런 유인이 없다.
class A implements ResultSet{
public void afterLast() { }
}
오라클사서 요러한 형태로 만들어 놓는 경우가 있어서 아서 사용하기 블가능에 가깝다.
[일반적인 자바 서비스 아키텍쳐]
android <=A=>[ View(JSP / ..) -> Controller -> Model ] -> (ORM) -> Oracle
여기서
android 부분은 web가 될수도 있다.
<=A=>부분은 (XML/JSON)
Model이 Spring이다.
Controller 은 Struts라 한다.
(ORM) 은 MyBatis,하이버네이트
View(JSP / ..)는 JSP/JQuery/Flex...