データストレージの詳細(3)---->データベースストレージ
シリーズドキュメント:データストレージの詳細(一)->SharedPreferences(xmlストレージ)データストレージの詳細(二)->Fileストレージ:内部ストレージ-CAcheと外部ストレージ-SDカード
参照先:http://www.cnblogs.com/ITtangtang/p/3920916.html#type3
1.概要:
Androidシステムは軽量レベルのデータベースを統合しています:SQLite、これは埋め込み式のデータベースエンジンで、資源の限られた設備(携帯電話など)の適量のデータアクセスに特化しています.
2.aql文:
3.SQLiteOpenHelperクラスの紹介
SQLiteOpenHelperは、データベースの作成とバージョンの更新を管理するSQLiteDatabaseのヘルプクラスです.一般的には、クラス継承を確立し、onCreateメソッドとonUpgradeメソッドを実装します.
4.データベースの作成:
データベース・インスタンスの取得にgetWritableDatabase()メソッドを使用しました.ディスク容量が満たされていない場合などは、getReadableDatabase()はgetWritableDatabase()と同じデータベースインスタンスを返すのが一般的なので、DBManager構築方法でgetWritableDatabase()を使用してアプリケーション全体で使用されるデータベースインスタンスを取得することは可能です.もちろん、このような状況が発生することを本当に心配している場合は、getWritableDatabase()でデータ・インスタンスを取得し、異常が発生した場合はgetReadableDatabase()でインスタンスを取得しようとします.もちろん、このとき取得したインスタンスは読み書きできません.注:MySqliteHelperはSQLiteOpenHelperを継承するカスタムクラスです.
5.操作データベース:(注:ここで削除・変更処理のパラメータはすべてデータテーブルであり、データベース名ではない)
データの処理には、コードとsql文の2つの方法があります.
(1)データの挿入: insert法 を用いる. execSQL方式を使用して を実現
(2)データの削除: deleteメソッド:パラメータ:データテーブル、制限条件、値(文字配列タイプ)
(3)データの修正: updateメソッド:ContentValueパラメータ:データテーブル、変更するvalues、制限条件、値を使用する必要があります.
(4)クエリーデータ: rawQuery方法:解析:cursor.getString(cursor.getColumnIndex(“name”)); //cursor.getColumnIndex(「name」)は、nameの値を持つ列の列番号cursorを取得する.getString()このカラムのデータをカラム番号で取得する Query()メソッド:
参照先:http://www.cnblogs.com/ITtangtang/p/3920916.html#type3
1.概要:
Androidシステムは軽量レベルのデータベースを統合しています:SQLite、これは埋め込み式のデータベースエンジンで、資源の限られた設備(携帯電話など)の適量のデータアクセスに特化しています.
2.aql文:
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.操作データベース:(注:ここで削除・変更処理のパラメータはすべてデータテーブルであり、データベース名ではない)
データの処理には、コードとsql文の2つの方法があります.
(1)データの挿入:
(2)データの削除:
db.delete("user", "name=?", new String[]{"zhangsan"});// name zhangsan
(3)データの修正:
(4)クエリーデータ: