Chapter Chapter 신한대학교 2015 봄학기 클라이언트/서버 프로그래밍 고덕윤 maniara.k@gmail.com .
Data Base에 저장하기
이제 아주 간단한 웹사이트는 만들 수 있습니다. 5MemberDataAccessController
우리가 알고 있던 데이터베이스
01
DDL(Data Definition Language) DML(Data Manipulation Language) DCL(Data Control Language)
<<entity>> Member
JoinController m = new Member(“홍길동”, “20141111”…);insertMemberData(m);
insertMemberData(Student student) {
String name = student.getName();
query = “insert into member values { …}”; }
• RDB에서는 DB 테이블에 데이터를 넣기 위해 entity의 객체를 DML(insert,select,delete)문법을 통해 처리 하는 로직이 필요함
Object into database
02
class Member{ String id; String name; String address; } Member.java class JoinController{ joinMember(){Member member = new Member(…)
MemberDataAccessController.addMember(member) }
}
JoinController.java
class MemberDataAccessController { static addMember(Member member) {
Connect con = new Connect(…); String query = “insert into Member
values(”+member.getId()+”,”+member.getName()+”..+”)”; con.executeQuery(query); } } MemberDataAccessController.java Member id name Address maniara.k 고덕윤 서울시 영등포구…
우리가 잘 모르던 데이터베이스
03
class Member{ String id; String name; String address; } Member.java class JoinController{ joinMember(){Member member = new Member(…) makePersistent(member) } } JoinController.java Member id name Address maniara.k 고덕윤 서울시 영등포구…
Relational Data Base & Object (Oriented) Data Base
04
RDB OODB
프로그래밍 언어 외의 별도 문법이 필요함 순수 객체지향 언어로 처리함
별도의 데이터 설계도 (ERD) 가 필요 클래스 다이어그램으로 대체 가능
한정된 형(int, varchar, numeric ..)을 사용 사용자 정의 클래스 타입이 가능
Select 결과가 ResultSet으로 반환 Select 결과가 List형으로 반환
외래키 명시가 가능함 멤버변수로 명시함 쿼리문을 통해 자료 조회가 가능함 별도의 프로그램을 통해야 자료 조회가 가능함 사람이 보기에 익숙한 이차원 형태 사람이 내용을 보기 위해선 삼차원 테이블의 표현이 필 요함 검색 성능과 대규모 트랜젝션이 RDB에 비해 느림 대형 데이터 처리의 사례가 많음 • 구현에는 OODB가 편리하고, 관리에는 RDB가 편리함.
Java Data Object & BigTable
•
JDO는
•
2006년 Apache 에서 처음 개발
•
Java언어로 제공하는 Object database API.
•
BigTable
•
Google Data Store는 Big Table이라는 초대형 데이터 저장소를 사용함
•
별도 테이블이 없고 속성을 갖는 엔티티의 형태로 저장됨
•
분산 처리를 통해 대용량 데이터에도 높은 성능을 냄
•
인덱스를 자동으로 생성하며, API를 통해서만 접근 가능함
•
아마존의 DynamoDB, 오픈소스 CouchDB등도 이 방식을 사용함
JDO API 사용하기 1
•
저장 가능한 entity class 만들기
Table 생성
06
Key : RDB의 Primary key와 같은 개념 • String, Long 타입으로 처리가 가능 • 사용자가 할당하지 않고 자동 생성된다는 것을 의미 영속성 객체 즉 DB에 저장 될 수 있는 객체라는 뜻 이 멤버변수는 DB에 저장하겠다 는 의미
JDO API 사용하기 2
Insert 구문07
Connection manager 얻어오는 구문 데이터베이스에 저장함 데이터 베이스 확인: http://localhost:8888/_ah/adminJDO API 사용하기 3
Select 구문
08
Primary key로 객체 얻어오는 구문
JDO API 사용하기 4
Update/Delete 구문
참조 소스코드
10
오늘의 실습
멤버 등록 페이지를 완성합시다.
11
• Team Project Introduction : 우리 팀 프로젝트 안내 페이지
registmember.html
Data Store에 저장함
index.html
Member List : Here
이름 학번 전화번호 … 홍길동 111 010-111 삭제 홍길동 20131111 010-xxxxxxx 회원정보 변경 회원정보 삭제
• 완성 후 google app engine에 배포한 뒤 확인 주소를
회원 세부 정보 보기 회원정보 조회