データストレージの詳細(3)---->データベースストレージ


シリーズドキュメント:データストレージの詳細(一)->SharedPreferences(xmlストレージ)データストレージの詳細(二)->Fileストレージ:内部ストレージ-CAcheと外部ストレージ-SDカード
参照先:http://www.cnblogs.com/ITtangtang/p/3920916.html#type3
1.概要:
Androidシステムは軽量レベルのデータベースを統合しています:SQLite、これは埋め込み式のデータベースエンジンで、資源の限られた設備(携帯電話など)の適量のデータアクセスに特化しています.
2.aql文:
数据存储详解(三)---->数据库存储_第1张图片
3.SQLiteOpenHelperクラスの紹介
SQLiteOpenHelperは、データベースの作成とバージョンの更新を管理するSQLiteDatabaseのヘルプクラスです.一般的には、クラス継承を確立し、onCreateメソッドとonUpgradeメソッドを実装します.
public class MySqliteHelper extends SQLiteOpenHelper {

    /** *            ,       * * @param context *     * @param name *       * @param factory *     ,   null,         * @param version *     * */
    public MySqliteHelper(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    //     ,   factory version  ,        ,         
    public MySqliteHelper(Context context, String name) {
        this(context, name, null, 1);//          ,   factory    

    }

/**         */
    @Override
    public void onCreate(SQLiteDatabase db) {//      
        // TODO Auto-generated method stub
        db.execSQL("create table if not exists user (id integer primary key autoincrement,name varchar(20),password varchar(20))");

    }
/**        */
    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO Auto-generated method stub

    }

}

4.データベースの作成:
データベース・インスタンスの取得にgetWritableDatabase()メソッドを使用しました.ディスク容量が満たされていない場合などは、getReadableDatabase()はgetWritableDatabase()と同じデータベースインスタンスを返すのが一般的なので、DBManager構築方法でgetWritableDatabase()を使用してアプリケーション全体で使用されるデータベースインスタンスを取得することは可能です.もちろん、このような状況が発生することを本当に心配している場合は、getWritableDatabase()でデータ・インスタンスを取得し、異常が発生した場合はgetReadableDatabase()でインスタンスを取得しようとします.もちろん、このとき取得したインスタンスは読み書きできません.这里写图片描述注:MySqliteHelperはSQLiteOpenHelperを継承するカスタムクラスです.
5.操作データベース:(注:ここで削除・変更処理のパラメータはすべてデータテーブルであり、データベース名ではない)
数据存储详解(三)---->数据库存储_第2张图片データの処理には、コードとsql文の2つの方法があります.
(1)データの挿入:
  • insert法数据存储详解(三)---->数据库存储_第3张图片
  • を用いる.
  • execSQL方式を使用して这里写图片描述
  • を実現
    (2)データの削除:
  • deleteメソッド:パラメータ:データテーブル、制限条件、値(文字配列タイプ)
  • db.delete("user", "name=?", new String[]{"zhangsan"});//  name zhangsan   
    

    (3)データの修正:
  • updateメソッド:ContentValueパラメータ:データテーブル、変更するvalues、制限条件、値を使用する必要があります.这里写图片描述

  • (4)クエリーデータ:
  • rawQuery方法:数据存储详解(三)---->数据库存储_第4张图片解析:cursor.getString(cursor.getColumnIndex(“name”)); //cursor.getColumnIndex(「name」)は、nameの値を持つ列の列番号cursorを取得する.getString()このカラムのデータをカラム番号で取得する
  • Query()メソッド:数据存储详解(三)---->数据库存储_第5张图片