박혜경
2013년 8월 27일 화요일
2013년 8월 14일 수요일
8월14일 수업
데이터 변경
update 테이블명 set 컬럼명=값, 컬럼명=값,....
where 조건
데이터 조회
select 컬럼명, 컬럼명,......
from 테이블명
where
컬럼명 연산자 값 and/or 컬럼명 연산자 값....
like
between a and b : x >= a and x <= b

in ( 값, 값 , 값)
not
delete
데이터 삭제
delete from 테이블명
where 조건
delete from 테이블명
where 조건
Adapter 패턴
다형성: overloading
같은 기능을 하는 메서드에 대해 같은 이름을 부여함으로써 프로그래밍의 일관성을 확보
같은 기능을 하는 메서드에 대해 같은 이름을 부여함으로써 프로그래밍의 일관성을 확보
추상클래스
서브클래스들에게 공통 속성 및 기능을 상속해주기 위한 용도
서브클래스들에게 공통 속성 및 기능을 상속해주기 위한 용도
인터페이스
사용 객체와 사용당하는 객체 사이의 호출 규칙
사용 객체와 사용당하는 객체 사이의 호출 규칙
ex) 자동차 ==> [타이어] <== 한국타이어, 금호타이어 등등
인터페이스의 메서드는 단지 규칙으로 역할을 하기 때문에 구현하지 않는다.
=> 인터페이스의 모든 메서드는 추상메서드 이다.
=> abstract 생략가능
규칙은 반드시 공개되어야 하기 때문에, public이다.
=> public 은 생략가능
인터페이스의 메서드는 단지 규칙으로 역할을 하기 때문에 구현하지 않는다.
=> 인터페이스의 모든 메서드는 추상메서드 이다.
=> abstract 생략가능
규칙은 반드시 공개되어야 하기 때문에, public이다.
=> public 은 생략가능
2013년 8월 13일 화요일
8월13일 수업
DBMS
->Data 저장,조회,변경,삭제관리전문S/W)
->Data 와 Data 사이의 관계관리 =>RDBMS
->Data를 효율적으로 관리(데이타의 중복제거,결함제거(무결성),체계적(Data base)
->FIle I/O free
명령
APP ------------------> DBMS
SQL |
(structured |
query language ) | read/write
|
|
Data
=>표준문법 + DBMS고유문법이 같이 사용됨
SQL 사용방법
->Data를 저장할 Tool을 만들어야 한다. => DDL
->Data를 입력,삭제,변경 =>DML
->저장된 Data를 조회한다 =>DQL
Native API
->SQL문을 DBMS 프로토콜에 맞추어 서버에 전달
->서버에서 보낸결과 리턴
->Data 저장,조회,변경,삭제관리전문S/W)
->Data 와 Data 사이의 관계관리 =>RDBMS
->Data를 효율적으로 관리(데이타의 중복제거,결함제거(무결성),체계적(Data base)
->FIle I/O free
명령
APP ------------------> DBMS
SQL |
(structured |
query language ) | read/write
|
|
Data
=>표준문법 + DBMS고유문법이 같이 사용됨
SQL 사용방법
->Data를 저장할 Tool을 만들어야 한다. => DDL
->Data를 입력,삭제,변경 =>DML
->저장된 Data를 조회한다 =>DQL
Native API
->SQL문을 DBMS 프로토콜에 맞추어 서버에 전달
->서버에서 보낸결과 리턴
TYPE 1
*특징 : ODBC Driver을 사용
: JRE에 포함되어있다.
: 속도가 느리다.
: Excel, Access와 같은
파일기반 DBMS를 사용할 수 있다.
TYPE 2
* 특징 : DBMS 회사로 부터 별도 다운로드 필요
: Native API 사용
TYPE 4
*특징 : DBMS 회사로부터 다운로드
: 직접 DBMS와 연결
: Pure Java Driver
2013년 8월 12일 월요일
2013년 8월 8일 목요일
8월 8일 수업
예외처리
- 오류 발생 시 자신이 처리하지 않고 호출자에게 떠 넘긴다.
- 호출자에게 오류를 넘기기 위해서는 메서드 선언부에 어떤 오류를 넘길지 선언해야 한다.
- try... catch 문법을 사용하여 오류를 적절히 처리하여 시스템이 멈추지 않게 한다.
public static void case2() {
System.out.println("작업 준비...");
try {
work();
} catch (Error e) {
System.out.println("오류 났네요. 그래도 계속 고~~~");
}
System.out.println("다른 작업...");
}
- 추가적으로 보고도 한다.
- 예외 발생 상황을 호출자에게 전달할 필요가 있을 때
try {
...
} catch ( 파라미터 선언 ) {
throw 보고;
} catch ( 파라미터 선언 ) {
throw 보고;
} finally {
예외 처리
}
- finally 블럭은 try...catch 블럭을 탈출하기 전에 반드시 수행된다.
\
Throwable 클래스
- 예외 상황을 보고할 때 사용하는 클래스
- 보통 예외 상황이 발생했을 때의 정보를 담고 있다.
- throw 명령어로 해당 객체를 호출자에게 전달한다.
- 두 타입의 자식 클래스가 있다.
1) Exception 자식 클래스
- 애플리케이션에 작업 도중에 발생하는 오류를 표현
- 이런 예외를 보고 받는 호출자는 반드시 오류 처리를 해야 한다.
만약 오류 처리를 하지 않으면, 컴파일 시 오류가 발생한다.
- RuntimeException
: Error와 마찬가지로 호출자에게 던졌을 때
오류를 잘 받는지 컴파일러가 검사하지 않는다.
2) Error 자식 클래스
- JVM 시스템에서 발생하는 오류를 표현
- 이런 예외를 보고 받는 호출자는 오류를 처리하지 않아도 컴파일 오류가
발생하지 않는다.
Stream
Data sink stream class
데이터를 직접 읽고 쓰는 클래스
예) FileInputStream/FileOutputStream
FileReader/FileWrite
ByteArrayInputStream/ByteArrayOutputStream,
CharArrayReader/CharArrayWriter
StringReader/StringWriter
PopedInputStream/PopedOutputStream
PopedReader/PopedWriter
Data processing stream class
=> 중간에서 데이터를 가공하는 역할
=> 위의 Data sink stream class를 제외한 모든 클래스
=> 구분하는 방법:생성자에서 다른 스트링을
요구한다면
이것은 혼자 입,출력을 할 수 없다는 뜻이기 때문에
데이터 가공클래스라 할 수 있다.
추상클래스
=> sub 클래스들에 공통속성이나 공통기능을 상속해주는 역할
=> 직접사용불가
=>new로 인스턴스 생성불가
Over loading
=> 같은 일을 하는 메서드의 대해
같은 이름을 부여하므로서
프로그래밍의 일관성을 주는 문법
2013년 8월 6일 화요일
8월7일 오후수업
update출력하기
private void update() {
Member m = list.get(no - 1);
Member copy = m.clone();
System.out.printf("번호(%1$d):", no);
System.out.printf("이름(%1$s):", m.getName());
String value = scanner.nextLine();
if (value.length() > 0) {
copy.setName(value);
}
System.out.printf("전화(%1$s):", m.getPhone());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setPhone(value);
}
System.out.printf("이메일(%1$s):", m.getEmail());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setEmail(value);
}
System.out.printf("블로그(%1$s):", m.getBlog());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setBlog(value);
}
System.out.printf("나이(%1$d):", m.getAge());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setAge( Integer.parseInt(value) );
}
System.out.print("변경하시겠습니까?(y/n)");
if(scanner.nextLine().toLowerCase().equals("y")){
copy.setRegDate(new Date());
list.set(no-1, copy);
System.out.println("변경되었습니다!");
} else {
System.out.println("변경 취소하였습니다!");
}
}
출력결과
명령>update
번호(1):이름(홍길동):
전화(111-2222):
이메일(hong@test.com):
블로그(hong.blogspot.com):
나이(20):17
변경하시겠습니까?(y/n)y
변경되었습니다!
delete 출력하기
private void detele() {
list.remove(no - 1);
no = 0;
System.out.println("삭제되었습니다!");
}
delete 출력결과
*명령>view 1
번호:1
이름:홍길동
전화:111-2222
이메일:hong@test.com
블로그:hong.blogspot.com
나이:17
등록일:2013-08-07
*명령>delete
삭제되었습니다!
====>view 부터 명령을해야만 delete 가능!1
private void update() {
Member m = list.get(no - 1);
Member copy = m.clone();
System.out.printf("번호(%1$d):", no);
System.out.printf("이름(%1$s):", m.getName());
String value = scanner.nextLine();
if (value.length() > 0) {
copy.setName(value);
}
System.out.printf("전화(%1$s):", m.getPhone());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setPhone(value);
}
System.out.printf("이메일(%1$s):", m.getEmail());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setEmail(value);
}
System.out.printf("블로그(%1$s):", m.getBlog());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setBlog(value);
}
System.out.printf("나이(%1$d):", m.getAge());
value = scanner.nextLine();
if (value.length() > 0) {
copy.setAge( Integer.parseInt(value) );
}
System.out.print("변경하시겠습니까?(y/n)");
if(scanner.nextLine().toLowerCase().equals("y")){
copy.setRegDate(new Date());
list.set(no-1, copy);
System.out.println("변경되었습니다!");
} else {
System.out.println("변경 취소하였습니다!");
}
}
출력결과
명령>update
번호(1):이름(홍길동):
전화(111-2222):
이메일(hong@test.com):
블로그(hong.blogspot.com):
나이(20):17
변경하시겠습니까?(y/n)y
변경되었습니다!
delete 출력하기
private void detele() {
list.remove(no - 1);
no = 0;
System.out.println("삭제되었습니다!");
}
delete 출력결과
*명령>view 1
번호:1
이름:홍길동
전화:111-2222
이메일:hong@test.com
블로그:hong.blogspot.com
나이:17
등록일:2013-08-07
*명령>delete
삭제되었습니다!
====>view 부터 명령을해야만 delete 가능!1
피드 구독하기:
글 (Atom)
































