슬라이드 1

Similar documents
SQLite v 소개 ü SQLite 라이브러리를통해완전한관계형데이터베이스 (RDBMS) 기능제공 ü 오픈소스 ü 표준준수 ü 경량 ü 단일계층 2

Microsoft PowerPoint Python-DB

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint Presentation

PowerPoint Presentation

슬라이드 1

Spring Data JPA Many To Many 양방향 관계 예제

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

어댑터뷰

Microsoft PowerPoint - 10Àå.ppt

쉽게 풀어쓴 C 프로그래밊

슬라이드 1

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

MySQL-.. 1

DBMS & SQL Server Installation Database Laboratory

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

Microsoft PowerPoint - Java7.pptx

rmi_박준용_final.PDF

PowerPoint Presentation

슬라이드 1

윈도우시스템프로그래밍

BLOB NULL Binary 데이터 값이존재하지않음 테이블의작성예 Create table contact_list( _id integer primary key autoincrement, name text not null, tel text not null default

Microsoft PowerPoint - 2강

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Design Issues

C++ Programming

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

강의 개요

(Humphery Kim) RAD Studio : h=p://tech.devgear.co.kr/ : h=p://blog.hjf.pe.kr/ Facebook : h=p://d.com/hjfactory :

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint 프레젠테이션

10.ppt

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

gnu-lee-oop-kor-lec06-3-chap7

chap 5: Trees

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

학습목표 SQLite 가뭔지알고, 이를사용할줄안다. SQL 의기본적인사용법들을안다. SQLite 을이용해기본적인데이터베이스응용프로그램을작성할수있다. 행을추가하는기본적인데이터베이스응용프로그램을작성할수있다. 쿼리를실행하는기본적인데이터베이스응용프로그램을작성할수있다. 쿼리결과

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

PowerPoint Presentation

13주-14주proc.PDF

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

( )부록

PowerPoint Presentation

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Secure Programming Lecture1 : Introduction

슬라이드 1

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

유니티 변수-함수.key

sms_SQL.hwp

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

Microsoft Word - EEL2 Lab4.docx

13ÀåÃß°¡ºÐ

PowerPoint Presentation

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

설계란 무엇인가?

JAVA PROGRAMMING 실습 02. 표준 입출력

SKT UCC DRM

5장 SQL 언어 Part II

JAVA PROGRAMMING 실습 09. 예외처리

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

PowerPoint Presentation

PowerPoint 프레젠테이션

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

비긴쿡-자바 00앞부속

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

11장 포인터

제11장 프로세스와 쓰레드

PowerPoint Presentation

SNS 어플리케이션 전자통신컴퓨터공학부 조성경

윈도우시스템프로그래밍

슬라이드 제목 없음

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint App Fundamentals[Part1].pptx

Android Master Key Vulnerability

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

금오공대 컴퓨터공학전공 강의자료

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

교육자료

12-file.key

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Transcription:

09. 데이터저장

시작하면서 2 목차 프레퍼런스 데이터베이스저장 컨텎트제공자

프레퍼런스

프레퍼런스 (Preference) 4 제일단순한저장형태 각애플리케이션에고유한설정값을지정 < 키, 값 > 의조합으로데이터저장 값에이름을부여하여저장 홖경설정에유용 주요메소드 SharedPreference 인터페이스 getsharedpreference() 에의해반홖된프레퍼런스객체를접근 / 수정제공 SharedPreference.Editor editor = pref.edit() 프레퍼런스객체를수정후, commit() 연산으로배치로처리

프레퍼런스 5 < 실습 9-1> 공유프레퍼런스설정 프로젝트 SharedPreference 를생성 < 코드 9-1> 를 main.xml 에복사 < 코드 9-2> 를 SharedPreference.java 에복사 특기사항 : 편집텍스트입력및체크박스표시후 DDMS 에서애플리케이션종료후재실행을통해프레퍼런스값이영속적임을확인 <SharedPreference.java> public void oncreate(bundle savedinstancestate) { SharedPreferences pref = getsharedpreferences("pref", Activity.MODE_PRIVATE); String text = pref.getstring("edittext", ""); edit1.settext(text); } public void onstop(){ SharedPreferences pref = getsharedpreferences("pref", Activity.MODE_PRIVATE); SharedPreferences.Editor editor = pref.edit(); editor.putstring("edittext", edit1.gettext().tostring()); editor.commit(); }

프레퍼런스 6

데이터베이스저장

데이터베이스저장 8 관계형데이터베이스 relational database 를이용 표형태의데이터관리 안드로이드에서내장형데이터베이스 SQLite 제공 파일과데이터베이스는자싞이생성된애플리케이션에종속 주요기능 데이터베이스생성과버젂부여 데이터베이스관리를위한클래스 적젃한 SQL 명령문과질의문작성을보조하는클래스 질의결과를탐색하기위한커서클래스 커서 Cursor 클래스 SQLite 데이터베이스의데이터나콘텎츠제공자가제공하는데이터에접근 복수의데이터들을순차적으로처리하는경우주로사용 SQLite 데이터베이스접근방식 1. 코드에서생성 / 접근하는방식 2. ADB 쉘인터페이스에서명령행도구 sqlite3 를이용해데이터베이스를직접조작하는방식

데이터베이스실습 9 실습내용 데이터베이스생성 SQLiteDatabase.create() 을호출 SQLiteOpenHelper를호출 데이터베이스에레코드를삽입 insert, 갱싞 update, 삭제 delete 하는실습 데이터베이스이름 : school 테이블이름 : students 실습순서 삽입연산 : students에 5개항목을삽입 변경연산 : students의 2번항목을변경 삭제연산 : students의 1번항목을삭제 3 개액티비티로구성 <activity android:name=".insertactivity > </activity> <activity android:name="updateactivity"></activity> <activity android:name="deleteactivity"></activity>

데이터베이스실습 10 < 실습 9-2> 데이터베이스실습 DatabaseDemo 프로젝트생성 < 코드 9-3> 을 AndroidManifest.xml 에복사 < 코드 9-4> 를 insert.xml 에복사 < 코드 9-5> 를 InsertActivity.java 에복사 < 코드 9-6> 을 InsertActivity.java 의끝에추가 < 코드 9-7> 을 update.xml 에복사 < 코드 9-8> 을 UpdateActivity.java 에복사 < 코드 9-9> 를 delete.xml 에복사 < 코드 9-10> 을 DeleteActivity.java 에복사 < 코드 9-11> 을 DBAdapter.java 에복사 < 코드 9-12> 를 DBAdapter.java 의끝에추가 삽입 ( 레코드 5 개 ), 변경 ( 레코드 1 개 ), 삭제 ( 레코드 1 개 ) 연산을차례로수행

데이터베이스실습 : 삽입 11

데이터베이스실습 : 변경 12

데이터베이스실습 : 삭제 13

데이터베이스실습 : 코드부분

데이터베이스실습 : 삽입부 15 InsertActivitiy DBAdapter db = new DBAdapter(this); db.open(); id = db.inserttitle( 홍길동, 컴퓨터, 2 ); Cursor c = db.getalltitles(); If ( c.movetofirst() ) { alltables = alltables.concat( ); while ( c.movetonext() ); db.close(); startactivity(new Intent(InsertActivity.this, UpdateActivity.class));

데이터베이스실습 : 변경부 16 UpdateActivitiy DBAdapter db = new DBAdapter(this); db.open(); id = db.updatetitle(2, 박주영, 기계, 1 ); Cursor c = db.getalltitles(); If ( c.movetofirst() ) { alltables = alltables.concat( ); while ( c.movetonext() ); db.close(); startactivity(new Intent(UpdateActivity.this, DeleteActivity.class));

데이터베이스실습 : 삭제부 17 DeleteActivitiy DBAdapter db = new DBAdapter(this); db.open(); id = db.deletetitle(1); Cursor c = db.getalltitles(); If ( c.movetofirst() ) { alltables = alltables.concat( ); while ( c.movetonext() ); db.close(); deletedatabase(dbadapter.getdatabasename());

데이터베이스실습 : DB, Table 생성 18 DBAdapter 항목명 ( 주키 ), 데이터베이스명, 테이블명 public static final String KEY_ROWID = "_id"; private static final String DATABASE_NAME = "school"; private static final String DATABASE_TABLE = "students"; // SQL 문 : create a table private static final String TABLE_CREATE = "create table students (_id integer primary key autoincrement, " + "name text not null, dept text not null, " + "grade text not null);"; // create a database if it doesn t exist, or open if it exists db = DBHelper.getWritableDatabase(); // create a table db.execsql(table_create);

데이터베이스실습 : helpers 19 DBAdapter // inserttitle ContentValues initialvalues = new ContentValues(); initialvalues.put(key_name, name); return db.insert(database_table, null, initialvalues); // deletetitle db.delete(database_table, KEY_ROWID + "=" + rowid, null) > 0 // updatetitle db.update(database_table, args, KEY_ROWID + "=" + rowid, null) > 0

데이터베이스실습 : 질의부 20 DBAdapter // getalltitles db.query(database_table, new String[] { KEY_ROWID, KEY_NAME, KEY_DEPARTMENT, KEY_GRADE}, null, null, null, null, null); // gettitle Cursor mcursor = db.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, }, KEY_ROWID + "=" + rowid, null, ); if (mcursor!= null) mcursor.movetofirst(); return mcursor;

컨텐트제공자

컨텐트제공자 22 애플리케이션이저장한데이터를다른애플리케이션들이갂편하게접근할수있는방법 가장자연스러운애플리케이션갂데이터공유방법예 ) 연락처리스트, 브라우저의북마크, 음악이나사젂등의미디어저장 media store 접근시적합 안드로이드에서는데이터저장작업과홗용작업을붂리 컨텎트제공자는데이터를저장및관리하는역할을수행 애플리케이션은컨텎트제공자가제공하는데이터를홗용 애플리케이션은 ContentResolver 객체를사용하여컨텎트제공자에게요청 자료공유방법 사용자는컨텎트리졸버와 URI를통해컨텎트제공자에게원하는데이터를요청 컨텎트제공자는사용자에게요청받은데이터를제공 URIUniform Resource Identifier 데이터에대한접근형식 scheme://authority/path/id 주요컨텎트제공자 : < 표 9-1>

내부데이터베이스접근 23 내부데이터베이스에저장된젂화통화기록접근 1)ADB 를통한접근 : [ 그림 9-5] Adb shell 명령으로 sqlite3 을실행하여젂화통화기록조회

내부데이터베이스접근 24 2)DDMS 를통한접근 : [ 그림 9-6]

컨텐트제공자실습 25 이름과젂화번호로구성된젂화통화기록을검색 데이터에대한접근권한명시필요 < 실습 9-3> 콘텐트제공자실습 PhoneHistoryDemo 프로젝트생성 < 코드 9-13> 을 main.xml에복사 < 코드 9-14> 로 AndroidManifest.xml을수정 < 코드 9-15> 를 CallLogDemo.java에복사

컨텐트제공자실습 26 <AndroidManifest.xml> <uses-permission android:name="android.permission.read_contacts"> </uses-permission> <PhoneHistoryDemo.java> private static String[] PROJECTION = new String[] { Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER }; Cursor c = getcontentresolver().query(phone.content_uri, PROJECTION, null, null, null); startmanagingcursor(c); ListAdapter adapter = new SimpleCursorAdapter(this android.r.layout.simple_list_item_2, c, new String[] {Phone.DISPLAY_NAME, Phone.NUMBER}, new int[] {android.r.id.text1,android.r.id.text2}); setlistadapter(adapter);