210112 정렬알고리즘, JDBC

조영혜·2022년 1월 12일
0

정렬알고리즘

: 원소들을 일정한 순서대로 열거하는 알고리즘.

버블정렬

: 두 인접한 원소를 비교하여 정렬하는 방법.
: 본인 바로 옆에 있는 배열만! 비교해서 정렬.

  • 장점 : 구현이 쉽고 코드가 직관적.
  • 단점 : 하나하나 모든 요소와 교환 되야 해서 느림. 특정 요소가 최종 절렬 결과에 맞는 위치에 있더라도 교환 일어날 수 있음.

치환

임시공간을 만들어서 하나의 데이터를 넣어준 다음에, 넣어주지 않은 다른 값을 옮겨주고 임시저장한 데이터를 다시 배열에 넣어줌.

int[] arr = { 7, 4, 5, 1, 3 };

for (int j = 0; j<=4; j++){ 
for(int i = 0; i<arr.length-j; i++){ //마지막 배열은 비교 X-> length-i해줘야함. 
    if(arr[i]>arr[i+1]){
       int temp; //치환 하기 위해 임시공간 temp 만들어주기.
       temp = arr[i]; //임시공간 temp에 arr[i]값 저장. (복사개념)
       arr[i]=arr[i+1]; //arr[i+1]값을 arr[i]에 저장.
       arr[i+1]=temp; // 임시공간에 있던 값을 arr[i+1] 값 저장. 
      }
   }
 }

선택정렬

: 가장 큰 원소 또는 작은 원소를 찾아 주어진 위치를 교체해 가는 정렬. 가장 작은 수가 있는 인덱스를 기억. 데이터값 말고 인덱스만 기억!

  • 장점 : 교환횟수가 적어 교환이 많이 이루어져야 하는 상태에선 효율적. ex)내림차순 정렬을 오름차순으로 재정렬할때.
  • 단점 : 비교횟수가 많아 이미 정렬된 상태에서 소수의 자료가 추가되면 재정렬할 때 처리속도 느림.

=> 비교횟수는 많고 교환횟수는 적음.

순차검색

: 처음부터 끝까지 순차적으로 비교-> 원소의 정렬 필요없음.
: 리스트 길이가 길면 비효율적임.

이진검색

: 리스트의 중간값을 정해 크고 작음을 비교해 검색하는 알고리즘. 정렬된 리스트에만! 사용할 수 있음.
ex)사전에서 단어 찾기.
전체 배열에서 가운데배열을 찾아서 lowIndex highIndex지정

JDBC

: Date Base와 Java를 연결!

  • Model- 데이터 (vo, dto, dao)
    vo - 학생 데이터를 묶어줌
    dao - 디비와 연결해서 디비를 다룸.
  • View - 눈에 보이는 부분
  • Controller - 로직

디비 저장할 테이블 생성
sqldeveloper

원하는 것만 실행 -> 블록설정한 뒤 F9

try~catah구문

  • 오류1. 컴파일오류
    : 코드 자체가 틀림. ex)오타, 변수이름 잘못 생성, 구문오류

  • 오류2. 런타임오류
    : 코드 자체가 틀린 것은 아님, 실행했을 때 오류가 나는 경우. 실행 전에는 오류가 날 지 알 수 없음. -> 사전에 예외처리를 해줘야함. 이 때 try~catch구문 사용.

try { 
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) { //ClassNotFoundException만 처리가능! 
e.printStackTrace(); //발생한 예외상황을 발생 순서대로 출력해줌. (어디에서, 왜 오류발생했는지 콘솔창에서 확인 가능) 
finally { //try문에서 예외상황이 발생하던지 발생하지 않던지 마지막에 무조건 실행하는 구문. 옵션. 필요하면 쓰면 됨. 
}

//exception e - 모든 예외상황에 대해 처리 가능. 
  • ClassNotFoundException 해결방안
    : 프로젝트에 ojdbc라이브러리 추가했는지 확인.
    ojbdc는 필요할때마다 추가해줘야함.
    : 오타확인.

사용할 계정 선택, 직접 디비랑 연결할 객체(Connection) 생성.
디비url 계정이름, 비밀번호 넣어줘야함

java로 실행하는 sql문은 모두 auto commit->모든 sql문 뒤에는 세미콜론 적으면 안됨!

Arrays.toString

0개의 댓글