Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/01/20 14:00

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

目次

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();
    }
}

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 横井 朗(ヨコイ アキラ)

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

バックナンバー

連載:速習! Androidアプリケーション開発
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5