Microsoft Word - Android_SQLite講座_画面800×1280

Similar documents
Microsoft Word - Android_SQLite講座_画面800×1280

日 力力 生 行行 入 入 力力 生 用 方

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

PowerPoint Presentation

テーブルの確認 sqlite>.tables.tables コマンドでデータベース内のテーブル一覧を表示する テーブルスキーマの表示 sqlite>.schema mytable.schema コマンドで指定のテーブルのスキーマを表示できる テーブル出力の整形.explain コマンドを使うと テー

データベースからデータの 読 み 込 み Cursorクラス

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

tkk0408nari

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

データベースアクセス

Microsoft PowerPoint - db03-5.ppt

SQLite データベース IS04 組み込み 1

Microsoft PowerPoint ppt

マルチ OS エンジンを使用した固定記憶域の操作 (テクノロジー・プレビュー) - パート 2

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

Microsoft PowerPoint pptx

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

PowerPoint Presentation

1 SQL Server SQL Oracle SQL SQL* Plus PL/SQL 2 SQL Server SQL Server SQL Oracle SQL SQL*Plus SQL Server GUI 1-1 osql 1-1 Transact- SQL SELECTFROM 058

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft Word - SQL.rtf

JAVA入門

10th Developer Camp - B5

プログラミング基礎I(再)

Prog2_9th

Microsoft認定資格問題集(70-483_demo)

Prog2_12th

Chapter Two

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

標準化 補足資料

Chapter Two

Javaプログラムの実行手順

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

基本情報STEP UP演習Java対策

PowerPoint プレゼンテーション

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

Prog1_6th

PowerPoint プレゼンテーション

Prog2_6th

プログラミング入門1

CMP2-3SQL2b.pptx

Prog2_10th

GEC-Java

Javaの作成の前に

PowerPoint プレゼンテーション

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP

Prog2_6th

Microsoft PowerPoint - OOP.pptx

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

データアダプタ概要

ガイダンス

Taro php.jtdc

Microsoft PowerPoint - ruby_instruction.ppt

Prog2_6th

问题集 ITEXAMPASS 1 年で無料進級することに提供する

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

Android Layout SDK プログラミング マニュアル

Microsoft Word - tutorial3-dbreverse.docx

第14回若年者ものづくり競技大会「業務用ITソフトウェア・ソリューションズ」職種 模擬競技課題

メディプロ1 Javaプログラミング補足資料.ppt

Prog1_15th

,, create table drop table alter table

プレポスト【問題】

2

オブジェクト指向プログラミング・同演習 5月21日演習課題

結合演算 ( 復習 ) データベース論 (9) R 社員番号 氏名麻生太郎安部晋三与謝野馨森喜朗 部門経理課営業課総務課営業課 S 部門経理課営業課総務課 電話 問合せ言語と SQL(2) R S 社員番号

26 editor.putint(pref_count_key, executecount); 27 // 変更した Preference を確定させる 28 editor.commit(); 29 } (c) 実行の様子実装して実行した様子を図 1 と図 2 に示す. 一度実行するごとに, カウン

PowerPoint プレゼンテーション

Prog1_10th

Prog2_2nd

ii II Web Web HTML CSS PHP MySQL Web Web CSS JavaScript Web SQL Web

Prog2_10th

クエリの作成が楽になるUDF

DAOの利用

スライド 1

SpringSecurity

mySQLの利用

Exam : J Title : Querying Microsoft SQL Server 2012 Version : DEMO 1 / 10

モデリング操作ガイド (データベースモデリング編)

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

スライド 1

3/7 マイグレーション開発方針 顧客名 0 作成者 根岸正 < プログラム移行方針 > システム名称 A-VX システムマイグレーション作成日 2015/09/01 < COBOL 資産のプログラム移行 > COBOLソース ( メインとCOPYLIB) を入力としてSCC 言語変換ツールにてVB

JAVA とテンプレート

Java の ConcurrentHashMap における同期化 バッドケースとその対処法 2013 年 9 月湊隆行 1. はじめに表 1.1 に示すように Java の Collections Framework には 3 つの世代があります バージョン 1.0 から存在するレガシー API バ

スライド 0

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう

Prog2_2nd

JavaプログラミングⅠ

Seasar.NET入門

Transcription:

Page 24 11 SQLite の概要 Android にはリレーショナルデータベースである SQLite が標準で掲載されています リレーショナルデータベースは データを表の形で扱うことができるデータベースです リレーショナルデータベースには SQL と呼ばれる言語によって簡単にデータの操作や問い合わせができようになっています SQLite は クライアントサーバ形式ではなく端末の中で処理が完結します また 取り扱いがシンプルで サーバのホスト名やポート番号 ログイン ID パスワードの指定も不要です 保存先は data/data/ パッケージ名 /databases/ ファイル名 となります 11.1 SQLiteDatabase オブジェクト Android では SQLiteDatabase オブジェクトを使って データベースを操作します SQLiteDatabase オブジェクトを取得するには 通常 ヘルパークラスとして SQLiteOpenHelper クラスを継承したクラスを作成して このクラスより SQLiteDatabase オブジェクトを取得します データベースを使用するには まずデータベースを保存するファイルを作成し 次にデータを格納するテーブルを定義し といった準備が必要になります SQLiteOpenHelper クラスを使用することで こうした煩わしい初期処理を自動化できます ヘルパークラス ヘルパークラスは 一般に アプリケーションによって特定のタスクを実行するために使用されるユーティリティです 通常 アプリケーション全体で何度も実行される共通のタスクのロジックを集中化するこれらのクラスが作成されます 11.2 SQLiteOpenHelper クラスでデータベースの生成 MyOpenHelper.java では SQLiteOpenHelper というクラスを継承して MyOpenHelper というクラスが作成されています これがヘルパークラスです SQLiteOpenHelper は 抽象クラスであり データベースの作成やバージョン管理に役立つヘルパークラスです データベースの作成がまだ行われていなければ作成を行い 作成されていればそれを開きます また 必要とあればデータベースのアップグレードを行います SQLiteOpenHelper では 4 つの引数を持つコンストラクタが用意されています Context データベース名 CursorFactory データベースのバージョン番号といった値が渡されます コンストラクタを定義する際には この引数が 4 つあるスーパークラスのコンストラクタを呼び出す必要がある という点に注意しましょう SQLiteOpenHelper にはいくつかのメソッドがありますが 一般的にはオブジェクトが生成される際の oncreate と データベースの更新時に呼び出される onupgrade は用意しておく必要があります SQLiteOpenHelper クラスは抽象クラスのため 利用する場合はそれを継承した独自クラスを定義し 抽象メソッドである oncreate() メソッドや onupgrade() メソッドなどをオーバーライドして実装します いずれも SQLiteDatabase というクラスのインスタンスが引数に渡されています これは SQLite にアクセスするための機能を提供するクラスです データベースアクセスは この SQLiteDatabase にあるメソッドを呼び出して行います 11.2.1 データベースヘルパーの定義 private static class MyOpenHelper extends SQLiteOpenHelper // データベースヘルパーのコンストラクタ public MyOpenHelper(Context context)

Page 25 super(context, "CustomerCard.db", null, DB_VERSION); SQLiteOpenHelper クラスを継承したクラス MyOpenHelper を定義し それを利用します オーバーライドするメソッドメソッドの呼び出し oncreate() メソッド データベース生成時に呼ばれる onupgrade() メソッド データベースアップグレード時に呼ばれる 11.2.2 データベースヘルパーのコンストラクタ super(context, データベースファイル名, ファクトリー, バージョン ); 11.3 SQLite の主な命令 命令 CREATE DROP SELECT UPDATE INSERT DELETE 説明テーブルの生成テーブルの削除レコードの検索及び データの抽出レコードの更新レコードの挿入レコードの削除 11.4 テーブルの作成 // データベースの生成 public void oncreate(sqlitedatabase db) String strsql = "CREATE TABLE product" + "(id INTEGER PRIMARY KEY, name STRING, address STRING, shoesize double)"; テーブルの生成 CREATE TABLE テーブル名 ( カラム名 1, カラム名 2,...); SQL 命令を実行するには SQLiteDatabase クラスの execsql() メソッドを使います カラムに対して PRIMARY KEY 制約を設定することができますが そのカラムのデータ型が INTEGER だった場合には自動的に連続する数値が格納されるようになります テーブルにデータを追加するときに 対象のカラムに値を代入しないと そのカラムに格納されている最大の値に 1 を加えた値がカラムの値として格納されます カラムのデータ型は INT が含まれる場合 全て INTEGER 型となりますが 連番が自動的に割り振られるのはカラムに対して INTEGER PRIMARY KEY と記述した場合だけです INT PRIMARY KEY ではこのような特別な動作はしません 11.4.1 テーブルの列に指定できる型 型 TEXT NUMERIC INTEGER REAL BLOB 説明文字列を格納する UTF-8, UTF-16BE or UTF-16-LE のいずれかで格納整数または浮動小数点数を格納する 符号付整数を格納する 1, 2, 3, 4, 6, or 8 バイトで格納浮動小数点数を格納する 8 バイトで格納 Binary Large Object 入力データをそのまま格納

Page 26 NONE 変換なし 11.4.2 テーブルの列に設定できる制約 制約 PRIMARY KEY NOT NULL DEFAULT UNIQUE AUTOINCREMENT 説明テーブルの主キー NULLを保存するとエラーになる生成時に指定されない場合のデフォルト値を設定重複した値を格納した場合はエラーになる生成時に自動で値をナンバリングする 11.4.3 PRIMARY KEY と UNIQUE の相違点 1PRIMARY KEY はテーブル定義時に一度だけ設定することができるが UNIQUE は他の制約と同じ扱いなので 定義時以外にもテーブルの変更でも設定できる 2PRIMARY KEY は設定した後に値を書き換えられないが UNIQUE は書き換えられる 3PRIMARY KEY は値に NULL を設定できないが UNIQUE には NULL を設定できる 11.5 データベースのアップグレード // データベースのアップグレード @Override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) db.execsql("drop talbe if exists "+DB_TABLE); oncreate(db); テーブルの削除 DROP TABLE テーブル名 ; 11.6 データベースオブジェクトの取得 // データベースオブジェクトの取得 MyOpenHelper helper = new MyOpenHelper(this); db = helper.getwritabledatabase(); データベースヘルパーを利用して SQLiteDatabase 型のデータベースオブジェクトを取得します 具体的には MyOpenHelper オブジェクトを生成後 getwritabledatabase() メソッドを呼びます SQLiteDatabase オブジェクトを取得するのに getwritabledatabase メソッドを使用していますが SQLiteDatabase オブジェクトを取得するには getreadabledatabase メソッドもあります getreadabledatabase メソッドと getwritabledatabase メソッドの違いは getreadabledatabase メソッドが読込み用にデータベースをオープンするのに対して getwritabledatabase メソッドは読み書き用にデータベースをオープンすることです getreadabledatabase メソッドや getwritabledatabase メソッドを使ってオープンしたデータベースは close メソッドを使ってデータベースをクローズする事を忘れないようにして下さい 11.7 テーブルへの新規書き込み // テーブルへの新規書き込み strsql = "INSERT INTO product(id, name, address, shoesize)" + " VALUES(" + id + ",'" + name + "','" +

Page 27 address + "','" + shoesize + "')"; データの生成 INSERT INTO テーブル名 ( 列名, 列名,...) VALUE ( データ, データ,...); 11.8 テーブルの書き換え // テーブルの書き換え strsql = "UPDATE product SET name = '" + name + "', address = '" + address + "', shoesize = '" + shoesize + "' WHERE id = '" + id + "'"; データの更新 UPDATE テーブル名 SET 列名 = データ, 列名 = データ,... [WHERE] 条件 ; 11.9 テーブルのレコードの削除 // テーブルのレコードの削除 strsql = "DELETE FROM product WHERE id = '" + id + "'"; データの削除 DELETE FROM テーブル名 [WHERE] 条件 ; 11.10 データの検索 // データの検索 strsql = "SELECT * FROM product WHERE id = '" + id + "'"; Cursor cr = db.rawquery(strsql, null); データの検索 SELECT 列名,... FROM テーブル名,... [WHERE 条件式 ] [GROUP BY 列名 [HAVING 条件式 ]] [ORDER BY 列名...] 検索結果は Cursor を使って取得します Cursor は可変長の List のようなクラスです 12 Android エミュレータで日本語入力をする方法 EditText などに日本語を入力する場合 次のような設定が必要です 12.1 ひとまず Android エミュレータを日本語表示にする 1Android エミュレータの MENU Settings Language & keybord を選択 2 Select language から 日本語 を選択 これでエミュレータの表示が全て日本語になります

Page 28 12.2 日本語入力を使う 1 同じく MENU 設定 言語とキーボード を選択 2 Japanese IME にチェックを入れるこれで日本語が入力できます