DB에서 여러건의 조회결과를 어디다 저장하나???? 배열에는 저장할 수 없다. 왜? 길이를 알 수 없기 때문에.
우리가 배운 배열 말고, 여러건의 데이터를 길이를 몰라도 저장할 수 있을까? 저장할 수 있다. 어디다? 클래스에. 무슨 클래스? 이름에 List, Set, Map이 있는 클래스에 저장할 수 있다. 이름에 List, Set, Map이 있는 클래스들을 뭐라고 하는가? -> 컬렉션 프레임워크(Collection Framework)라고 한다.
오라클DB와 연동하는 방법 1. 오라클에서 배포한 라이브러리(ojdbc6.jar)를 프로젝트(/WEB-INF/lib)에 설치한다. 2. 오라클과 연결에 사용하는 클래스를 선언한다. 클래스 이름은 Connection. 3. 오라클에 쿼리를 실행하는 클래스를 선언한다. - 쿼리를 실행할 때 사용하는 클래스는 2가지가 있다. - Statement, PreparedStatement 4. 쿼리가 select인 경우, 오라클로 부터 실행 결과를 받아야 한다. 해당하는 클래스이름은 ResultSet. ResultSet을 선언한다. 5. 쿼리를 선언한다.(Statement와 PreparedStatement인 경우 다르다.) - PreparedStatement인 경우에는 데이터가 입력되는 부분을 물음표(?)로 선언한다. 6. 예외처리를 한다. try-catch-finally 7. 오라클에서 배포한 라이브러리에 있는 클래스들을 불러온다. - Class.forName("oracle.jdbc.driver.OracleDriver") 8. Connection을 생성한다. 9. Statement 혹은 PreparedStatement를 생성한다. 9-1. PreparedStatement인 경우, ?에 데이터를 넣는다. 10. select쿼리를 실행한다.(메서드를 사용한다. 메서드이름:executeQuery()) 10. 실행결과를 ResultSet에 저장한다. 11. 실행결과로 이동한다.(메서드를 사용한다. 메서드이름:next()) 12. 실행결과를 가지고 온다.(데이터 타입에 따라 사용하는 메서드가 다르다). - 정수를 가지고 오는 경우(getInt(숫자)) - 문자열을 가지고 오는 경우(getString(숫자)) 13. 가지고 온 결과를 출력한다. 14. 모든 연결을 해제한다.(반드시 실행해야 한다.!!!)
오라클에서 배포한 DB연동 라이브러리를 찾는다. 1. 오라클 설치 폴더를 찾는다. - 제어판 -> 관리도구 -> 서비스 -> oracle .... -> 마우스 우 클릭 ->속성 -> 실행파일경로 2. 윈도우 탐색기를 띄워서 위에서 찾은 폴더를 접근한다. - ....../jdbc/lib/ojdbc6.jar 3. 프로젝트의 WEB-INF/lib/에 ojdbc6.jar를 붙여넣기 한다. 위의 1,2,3을 통해서 환경설정이 마무리 됨.
자바에서 DB연동 프로그램
자바에서 파일처리 프로그램, 네트워크 프로그램, DB관련 프로그램, 스레드 관련 프로그램 등을 하려면 반드시 "예외처리" 문법을 사용해야 한다. 원칙적으로 "예외처리" 문법은 선택사항이다. 하지만, 위의 4가지 분야의 프로그램에서 강제사항이다.
"예외처리" 문법의 개념 - 프로그램이 실행되다가 멈추는 상황 1. 에러가 발생했을 때 2. 예외가 발생했을 때 : 예외처리라는 문법의 대상 - 그런데, APP을 사용하는 사용자 입장에서는 1과 2의 차이가 없다. 그래서, APP의 신뢰도가 떨어진다. ---> 개발자가 욕을 먹는다. 1번인 경우는 욕을 먹어도 싸다. 하지만, 2의 경우는 개발자가 억울하다. - "예외처리"문법의 목적은 APP의 신뢰도를 높이자. 예외가 발생한 경우, 프로그램을 멈추지 말고 계속해서 돌리자.
에러와 예외의 차이 - 에러 : 완전히 잘못된 상황 즉 더이상 프로그램이 실행되면 안되는 상황, 즉 프로그램 오류 - 예외 : 프로그램은 잘못이 없다. 다만 실행 환경에 문제가 있는 경우 예) a.txt 파일을 열도록 프로그램을 작성함. 그런데, a.txt파일이 없는 경우 예) 192.168.0.180에 접속하도록 프로그램을 작성함. 그런데, 해당 IP주소가 없는 경우