55

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

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

4

4 に答える 4

102

Sqliteヘルパークラスは、データベースの作成とバージョン管理の管理に役立ちます。SQLiteOpenHelperは、すべてのデータベース管理アクティビティを処理します。これを使用するには、 1。のメソッドを
オーバーライドします。オプションで、onOpen()メソッドをオーバーライドします。 2.このサブクラスを使用して、読み取り可能または書き込み可能なデータベースを作成し、SQLiteDatabaseの4つのAPIメソッドを使用して、テーブルの行を作成、読み取り、更新、および削除します。onCreate(), onUpgrade()SQLiteOpenHelper
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クラスを使用して、すべてのデータベース操作を実行できます。レコードの作成は、更新と削除のための独自の関数を持つことができるのと同様に、値を挿入するのに役立ちます。

于 2012-08-18T04:35:03.150 に答える
13

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

1.AndroidSqliteデータベース

2.チュートリアル1

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

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

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

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

このリンクを参照する必要がありますSqliteHelper

于 2012-08-18T04:08:36.470 に答える
1

DBHelperクラスは、sqliteデータベースのオープンとクローズ、および作成と更新を処理するものであり、すべてがどのように機能するかについてのまともな記事がここにあります。私がアンドロイドを始めたとき、それは非常に役に立ちました(しかし、私は最近、Objective-Cであり、それのほとんどが何の役にも立たないことを忘れていました。

于 2012-08-18T04:06:51.700 に答える
1

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

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

于 2012-08-18T04:16:52.937 に答える