본문 바로가기
멀티캠퍼스/DB

20230824 (목)

by 세크레투스 2023. 8. 24.
반응형
SMALL

<복습>

1. JDBC 프로그램

- ROWNUM

- TOP-N 문제

- BETWEEN AND

- View

- SEQUENCE

* 유저 정보 테이블 - 유일성 보장해줌.

* 첨부파일 관리, 게시판 관리

* 순차번호를 배정해서 프라이머리키로 씀.

* 번호표를 발급

* 시작값, 증가값, 최대값 설정 가능함

* xxx.nextval

주로 insert문 호출 시 id부분에 배정함.

MySQL, MSSQL에서는

id, integer, primary key를 배정할 때 제약조건 걸듯이 속성을 지정하는데,

auto_increment를 통해서 자동으로 1 증가된 값이 배정된다.

2. 우리가 구축한 DB를 자바와 연동하는 프로그램 작성

Java에서는 1벌만 작성 -> JDBC Driver에서 어떤 DB랑 연동할 것인지를 선택함.

추상클래스/인터페이스로 코딩하면 실제 프로그램이 뭐인지와는 관계 없이 프로그램 구현 가능함.

3. Connection

- 접속, 세션관리 트랜잭션

4. SQL실행

- Statement

- PreparedStatement : 속도면에서 더 빠름.

- SQL문 -> DBMS

- SQL문이 어떤것이냐에 따라서 작업이 달라짐

* 읽기 : SELECT(리턴 - 테이블(다중데이터))

* 수정 : INSERT, UPDATE, DELETE -> 정수 : 영향받은 행의 갯수

SELECT : executeQuery() -> ResultSet

next()가 반환됐을 때 false가 반환됐으면 데이터가 없다고 봐도 됨.

while(rs.next()) { ... }

 

처음부터 데이터가 없을 수도 있음. -> while문을 처음부터 돌지 않을 수도 있음. -> 정상적인 실행 과정임.

만약에 where 절에 대한 검색이 pk컬럼에 대한거라면 1개 있거나, 없거나 둘 중 하나이다.

 

- insert, update, delete : 이 3가지 쿼리는 executeUpdate()를 통해서 업데이트가 됨.

return 값이 0이라고 해서 실패했다고 보면 안됨. => where 조건에 따른 데이터가 없다고 봐야 함.

진짜 에러는 제약조건 위배의 경우이다. => 이럴 경우에 예외가 발생함. (ORA-xxx...)

 

- VO (Value Object) :

* 만드는 법 - 테이블 설계, 테이블의 이름이 class이름이 됨. 컬럼명은 변수, 컬럼타입은 변수의 타입이 됨.

* VO의 인스턴스가 이 테이블에서는 행 데이터가 됨.

* VO를 정의하면 테이블을 자동으로 정의해주는 프로그램 : JPA 라이브러리를 사용하면 가능함. (ORM 이라고 부름)

 

<오늘 수업>

1. Compile이란?

- 하나의 언어를 파일로 번역시킬때 쓰이는 프로그램. (.java -> .class)

- 특정 소스 하나를 번역해서 기계어로 번역하는 일 = 컴파일

- 전체 파일을 번역한다 = 빌드

- 통합 Build 툴

* Maven - 이클립스와 친화적 (우리가 쓸 것, 라이브러리도 Maven으로~)

* Gradle - 인텔리제이와 친화적

 

2. JUnit

1. 단정문

- assertArrayEquals(expected, actual, message)

- assertEquals(expected, actual, message)

- assertSame(expected, actual, message)

- assertTrue(actual, message)

- assertNotNull(actual, message)

 

<<UserDAO>> 인터페이스

UserDaoImpl

 

<.nextLine() 에러>

==> 버퍼때문임.

자동으로 엔터가 되는 문제 해결

sc.nextLine(); // 엔터제거용

위의 코드 추가하기..!

 

select 결과 처리 -> ResultSet

 

<3Tier 구조>

- Data 계층

- Buisness 계층

- Presention 계층

==> 우리는 Impl 로나눴지만... CLI에서는 경계가 모호함.

 

3. Statement로 Insert문 실행

String sql = "INSERT INTO USER"

 

반응형
LIST

'멀티캠퍼스 > DB' 카테고리의 다른 글

20230823 (수)  (0) 2023.08.23
230822 (화)  (0) 2023.08.22
20230821(월)  (0) 2023.08.21
20230818 (금)  (0) 2023.08.18