web-dev-qa-db-ja.com

Android SQLiteの例

私はAndroidが初めてなので、SQLiteデータベースを使用する必要があるアプリケーションを作成する必要があります。私はSQLiteを十分に装備していません。

SQLiteOpenHelperクラスの目的と使用方法を教えてください。また、簡単なデータベースの作成と挿入の例を提供してください。

51
Rushabh Chheda

Sqliteヘルパークラスは、データベースの作成とバージョン管理を管理するのに役立ちます。 SQLiteOpenHelperは、すべてのデータベース管理アクティビティを処理します。それを使用するには、
1 .SQLiteOpenHelperonCreate(), onUpgrade()メソッドをオーバーライドします。オプションでonOpen()メソッドをオーバーライドします。
2。このサブクラスを使用して、読み取り可能または書き込み可能なデータベースを作成し、SQLiteDatabaseの4つのAPIメソッドinsert(), execSQL(), update(), delete()を使用して、テーブルの行を作成、読み取り、更新、削除します。

MyEmployeesテーブルを作成し、レコードを選択して挿入する例:

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "DBName";

    private static final int DATABASE_VERSION = 2;

    // Database creation sql statement
    private static final String DATABASE_CREATE = "create table MyEmployees
                                 ( _id integer primary key,name text not null);";

    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // Method is called during creation of the database
    @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(DATABASE_CREATE);
    }

    // Method is called during an upgrade of the database,
    @Override
    public void onUpgrade(SQLiteDatabase database,int oldVersion,int newVersion){
        Log.w(MyDatabaseHelper.class.getName(),
                         "Upgrading database from version " + oldVersion + " to "
                         + newVersion + ", which will destroy all old data");
        database.execSQL("DROP TABLE IF EXISTS MyEmployees");
        onCreate(database);
    }
}

これで、このクラスを次のように使用できます。

public class MyDB{  

    private MyDatabaseHelper dbHelper;  

    private SQLiteDatabase database;  

    public final static String EMP_TABLE="MyEmployees"; // name of table 

    public final static String EMP_ID="_id"; // id value for employee
    public final static String EMP_NAME="name";  // name of employee

    /** 
     * 
     * @param context 
     */  
    public MyDB(Context context){  
        dbHelper = new MyDatabaseHelper(context);  
        database = dbHelper.getWritableDatabase();  
    }


    public long createRecords(String id, String name){  
        ContentValues values = new ContentValues();  
        values.put(EMP_ID, id);  
        values.put(EMP_NAME, name);  
        return database.insert(EMP_TABLE, null, values);  
    }    

    public Cursor selectRecords() {
        String[] cols = new String[] {EMP_ID, EMP_NAME};  
        Cursor mCursor = database.query(true, EMP_TABLE,cols,null  
            , null, null, null, null, null);  
        if (mCursor != null) {  
            mCursor.moveToFirst();  
        }  
        return mCursor; // iterate to get each value.
    }
}

これで、アクティビティでMyDBクラスを使用して、すべてのデータベース操作を実行できます。レコードの作成は、値を挿入するのに役立ちます。同様に、更新および削除のための独自の関数を使用できます。

95
Vinay

次のリンクはあなたを助けます

1。Android Sqliteデータベース

2。チュートリアル1

データベースヘルパークラス:

データベースの作成とバージョン管理を管理するヘルパークラス。

onCreate(SQLiteDatabase)onUpgrade(SQLiteDatabase, int, int)およびオプションでonOpen(SQLiteDatabase)を実装するサブクラスを作成します。このクラスは、データベースが存在する場合はそれを開き、存在しない場合は作成し、必要に応じてアップグレードします。トランザクションは、データベースが常に適切な状態にあることを確認するために使用されます。

このクラスを使用すると、ContentProvider実装でデータベースのオープンとアップグレードを最初に使用するまで延期し、長時間実行されるデータベースアップグレードでアプリケーションの起動がブロックされるのを回避できます。

このリンクをもっと参照する必要があります Sqlite Helper

12
Aerrow

DBHelperクラスは、sqliteデータベースのオープンとクローズ、および作成と更新を処理するものであり、すべての仕組みに関する適切な記事は here です。 Androidを開始したとき、それは非常に便利でした(ただし、最近客観的でしたが、ほとんどの使用を忘れていました)。

1
CBredlow

ヘルパークラスを使用すると、SQLiteデータベースにアクセスでき、onCreate()メソッドとonUpgrade()メソッドをオーバーライドすることで、さまざまな操作を実行できます。

http://technologyguid.com/Android-sqlite-database-app-example/

1
wosimosi