210112 정렬알고리즘, JDBC
정렬알고리즘
: 원소들을 일정한 순서대로 열거하는 알고리즘.
버블정렬
: 두 인접한 원소를 비교하여 정렬하는 방법.
: 본인 바로 옆에 있는 배열만! 비교해서 정렬.
- 장점 : 구현이 쉽고 코드가 직관적.
- 단점 : 하나하나 모든 요소와 교환 되야 해서 느림. 특정 요소가 최종 절렬 결과에 맞는 위치에 있더라도 교환 일어날 수 있음.
치환
임시공간을 만들어서 하나의 데이터를 넣어준 다음에, 넣어주지 않은 다른 값을 옮겨주고 임시저장한 데이터를 다시 배열에 넣어줌.
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
Author And Source
이 문제에 관하여(210112 정렬알고리즘, JDBC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@0808yeonghye/210112-정렬알고리즘저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)