14 SQLite DB 활용 B A S I C 1 4_ 고객 등록과 조회 L A B 1 4_ 수정과 삭제를 포함하는 고객관리시스템 Advanced LAB 14_ 탭 메뉴의 고객관리시스템
Basic 14 고객 등록과 조회 14.1 프로젝트 개요 14.2 앱 개발
14.1 프로젝트 개요
DB와 SQLite 데이터베이스(DB: Database) 여러 사용자의 정보요구를 충족시키기 위해 서로 관련된 데이터를 체계적으로 구조화하여 저장한 것 데이터베이스관리시스템(DBMS: Database Management System) DB 관리를 위해 DB를 구축하거나 데이터에 대한 접근/통제 등의 기능을 제공하는 소프트웨어 관계형 데이터베이스(RDB: Relational Database) 데이터 개체를 테이블로 표현한 것 SQLite(sqlite.org) 2000년에 D. Richard Hipp에 의해 개발된 가벼운 관계형 데이터베이스관리시스템(Relational Database Management System)
데이터 구조
출력 화면
(계속)
14.2 앱 개발 Step 1 프로젝트 생성 (어플리케이션 기본 정보)
Step 2 소스 편집과 기본 개념 이해
기본 파일 간의 연관관계(고객목록)
Step 2-2 main.xml 편집 고객정보 조회 영역(07~13행)과 신규로 등록하는 화면으로 전환하기 위한 ‘등록’ 버튼(15~20행)으로 구성
Step 2-3 DBManager.java 편집 DBManager 클래스 객체가 생성될 때 ‘myDB’ 데이터베이스가 존재하지 않으면 새로 생성(08~12행) DBManager 액티비티 생성 시 ‘myDB’ 내에 ‘customers’ 테이블이 존재하지 않으면 새로 테이블을 만듦(14~18행)
클래스와 클래스 메소드
데이터베이스의 테이블 만들기 create table 테이블명 (속성명 데이터유형, 속성명 데이터유형, …); customers 테이블 테이블 생성을 위한 SQL 구문 create table customers (name text, sex text, sms text);
Step 2-4 CustomerListActivity.java 편집 고객정보를 출력할 영역을 인식(27~28행) DBMnager 클래스의 객체를 생성(33~34행) 데이터베이스에 연결하여 고객정보를 추출(36~39행) 각 고객정보를 출력(41~69행) ‘등록’ 버튼이 클릭되는지 대기(91~94행) 버튼이 클릭되면 onClick() 메소드는 고객등록 액티비티를 호출(97~105행)
(계속)
(계속)
(계속)
클래스와 클래스 메소드
데이터베이스의 데이터 추출 SQL 구문 select 속성명, 속성명, … from 테이블명 customers 테이블의 회원정보 select name, name, sex, sms from customers
(계속) while문을 이용한 데이터 추출 (1행~마지막 행까지 각 열의 데이터) while(cursor.moveToNext()) { ... String name = cursor.getString(0); String sex = cursor.getString(1); String sms = cursor.getString(2); }
기본 파일 간의 연관관계(고객등록)
‘고객등록’ 폼을 위한 join_form.xml에서 사용될 텍스트 리소스 추가(06~07, 09~12행) Step 2-5 strings.xml 파일의 편집 ‘고객등록’ 폼을 위한 join_form.xml에서 사용될 텍스트 리소스 추가(06~07, 09~12행)
join_form.xml 파일의 추가 및 편집 Step 2-6 join_form.xml 파일의 추가 및 편집 고객등록 폼으로 사용하기 위해 res/layout 폴더에 join_form.xml 파일 추가 성명(07~22행), 성별(24~51행), 수신여부(53~69행) 입력을 위한 폼을 구성 - 9장 폼구성(Basic 09) 참조 ‘등록’ 버튼(71~88행) 추가
CustomerRegActivity.java 파일 생성 및 소스 편집 Step 2-7 CustomerRegActivity.java 파일 생성 및 소스 편집 고객정보을 등록하는 CustomerRegActivity.java 파일을 프로젝트 내의 자바 소스가 있는 src/com.andro 폴더에 추가 고객정보를 등록하는 절차는 11장 TransmissionLab 프로젝트의 SendActivity.java와 유사 - 추가 내용: ‘등록’ 버튼의 클릭 대기(27~29행)와 버튼 클릭 시의 onClick() 메소드의 재정의 onClick() 메소드에서는 customers 테이블에 사용자가 입력한 고객정보를 추가하고 ‘고객목록’ 액티비티로 이동하는 기능 작성(47~89행)
(계속)
(계속)
클래스 메소드
데이터베이스에 데이터 추가 insert into 테이블명 (속성명1, 속성명2, ….. ) values(속성명1의 데이터, 속성명2의 데이터, …..) 데이터가 문자일 때 작은 따옴표를 이용하여 ‘속성명1의 데이터’와 같이 표기 customers 테이블의 회원정보 - ‘Gil-dong Hong’의 데이터 추가를 위한 SQL 구문 insert into customers values(‘Gil-dong Hong’, ‘남’ ,’SMS’, ‘경영/경제’) - SQLiteDatabase 클래스의 execSQL() 메소드에서 데이터가 변수일 때 execSQL(“insert into customers values(‘” + str_name + “’, ‘” + str_sex + “’, ‘” + str_sms + “’, ‘” + str_interest + “’);”);
Step 2-8 AndroidManifest.xml 파일의 편집 추가된 ‘고객등록’ 액티비티의 클래스명과 액티비티 라벨 작성(22~26행)
Step 3 프로젝트 실행 처음 실행하면 등록된 고객정보가 없기 때문에 회원정보가 나타나지 않음 ‘등록’ 버튼을 클릭하고 ‘고객등록’ 액티비티에서 고객정보를 등록하면, 고객들의 정보가 목록으로 나타남
Lab 14 수정과 삭제를 포함하는 고객관리시스템 개발 14.1 프로젝트 개요 14.2 앱 개발
14.1 프로젝트 개요 데이터 구조
출력 화면 <고객목록 액티비티(계속)>
(계속)
(계속) <고객정보 액티비티>
(계속)
14.2 앱 개발 Step 1 프로젝트 생성 (어플리케이션 기본 정보)
Step 2 소스 편집과 기본 개념 이해
기본 파일 간의 연관관계 상세 내용은 교재 참조