SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習! Androidアプリケーション開発

Androidアプリでのデータベース基礎
~速習! Androidアプリケーション開発(4)~

第4回 データベースの利用

  • X ポスト
  • このエントリーをはてなブックマークに追加

 この連載では、Androidの開発の楽しさを感じてもらう事を目標に、難しい内容はひとまず置いておいて、アプリケーション開発ができるようになるまでを最短ルートで説明していきます。今回は、Androidにおけるデータベース利用の基礎を、実際に作成しながら解説していきます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

Androidアプリケーションでのデータベース基礎

 前回でレイアウトが作成できましたので、今回はデータベースを作成してアプリケーションに組み込んでいきましょう。

対象読者

 本連載はJavaおよびEclipseの基本を理解している方を対象としています。

前回までの記事

Androidで利用するSQLiteのクラス

 AndroidではSQLiteがサポートされており、下記の2つのクラスを使うだけで、簡単に利用できます。

SQLiteOpenHelper

 データベースの生成、スキーマのバージョン管理を行うための抽象クラスです。こちらのクラスを継承してデータベースの生成、アップグレード処理を実装します。

SQLiteDatabase

 insert、updateなどデータベースに対する各種操作用のメソッドを提供するクラスです。

 前回同様、今回の作業を行った状態のプロジェクトがこちらからダウンロードできますので、迷った場合は参考にしてください。

SQLiteの特徴

 SQLiteはデータの保存に単一ファイルのみを使用する軽量のRDBMSです。アプリケーションに含む形で利用される場合が多く、iPhoneでもSQLiteが利用されています。データ型もシンプルで下記の5種類のみに対応しています。

  • INTEGER・・・符号付整数
  • REAL・・・浮動小数点
  • TEXT・・・テキスト
  • BLOB・・・バイナリデータ
  • NULL・・・NULL

事前準備

 データベースの作成に入る前に、ソースのさまざまな所にSQLやカラム名が埋まってしまうのを防ぐため、1レコード分のデータを保持するクラスを準備しましょう。なお、データベース関連のソースは「sample.bizcard.db」パッケージに作成しています。

BizCard.java
package sample.bizcard.db;

import java.io.Serializable;

/**
 * 1レコードのデータを保持するオブジェクト
 * Intentに詰めてやり取りするのでSerializableをimplementsする
 */
@SuppressWarnings("serial")
public class BizCard implements Serializable{
    // テーブル名
    public static final String TABLE_NAME = "biz_card";
    
    // カラム名
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_PERSON_NAME = "person_name";
    public static final String COLUMN_COMPANY_NAME = "company_name";
    public static final String COLUMN_ORGANIZATION_NAME = "organization_name";
    public static final String COLUMN_POSITION_NAME = "position_name";
    public static final String COLUMN_ZIP_CODE = "zip_code";
    public static final String COLUMN_ADDRESS = "address";
    public static final String COLUMN_TEL1 = "tel1";
    public static final String COLUMN_TEL2 = "tel2";
    public static final String COLUMN_MAIL = "mail";
    
    // プロパティ
    private Long rowid = null;
    private String personName = null;
    private String organizationName = null;
    private String companyName = null;
    private String positionName = null;
    private String zipCode = null;
    private String address = null;
    private String tel1 = null;
    private String tel2 = null;
    private String mail = null;

    :
    :中略(getter/setter)
    :

    /**
     * ListView表示の際に利用するのでユーザ名+会社名を返す
     */
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append( getPersonName());
        if( getCompanyName() != null){
            builder.append(":");
            builder.append(getCompanyName());
        }
        return builder.toString();
    }
}

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
データベースの作成

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習! Androidアプリケーション開発連載記事一覧

もっと読む

この記事の著者

横井 朗(ヨコイ アキラ)

株式会社ビーブレイクシステムズにて業務システムのパッケージソフト(MA-EYES)の製品開発から導入までを手掛けるとともに、オープンソースソフトウェア(ExCella)の開発リーダも務める。オープンソース関連について多くの執筆経験を持つ。  

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4814 2010/01/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング