2012-01-23 8 views
1

sqlite androidに値を挿入すると、アプリケーションが実行されるたびにデータベースが作成されますか?sqlite androidに値を挿入するには

具体的には、リスト(食品、飲み物など)を入力するカテゴリがあります。

私の挿入方法はどこにありますか? 私のdbHelperクラスまたはデータを必要とするクラスでは?

public class ShoppingCategories extends ListActivity{ 
    private AppSQLite mDbHelper; 
    private Cursor mNotesCursor; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mDbHelper = new AppSQLite(this); 
    insertShoppingCategories(); 
} 

public void insertShoppingCategories(){ 
    mDbHelper.open(); 
    long id; 
    id = mDbHelper.createShoppingCategory("food", 5, "@drawable/ic_launcher"); 
    id = mDbHelper.createShoppingCategory("drink", 3, "@drawable/ic_launcher"); 

    mDbHelper.close(); 
} 

とdbHelperクラスからcreateShoppingCategoryがある:それは存在していない場合にのみ

public long createShoppingCategory(String name, int priority, String icon) { 
    ContentValues initialValues = new ContentValues(); 
    initialValues.put(KEY_NAME, name); 
    initialValues.put(KEY_PRIORITY, priority); 
    initialValues.put(KEY_ICON, icon); 

    return mDb.insert(tShopCateg, null, initialValues); 
} 

答えて

1

データベースが作成されます。値が1度だけ挿入される必要がある場合は、dbHelperクラスの中にonCreateを入れてください。

+0

ありがとう –

0

mDbHelper.open();の最初のインスタンスを作成すると、データベースが作成されます(これは、DBヘルパークラスonCreate()メソッドの実装によって異なる場合があります)。 DBに挿入したデータは、アプリケーションが終了した後でもDBに残ります(これがDBを持つ理由です)。挿入機能は、ユーザー入力をデータベースに永続的に保存する必要がある場合に使用します。

0

実際に特定のイベント/インスタンスにデータを挿入する機能が必要な場所に配置します。 dbHelprでのDBの定義方法(テーブルの行と列)を定義し、アクティビティでinsert deleteのような操作を実行します。

はい、dbHelperのオブジェクトを作成してdb._execコマンドを実行したときに、アプリケーションの初めての実行時にのみDBが作成されます。

0

データベースが作成されると、DBのバージョンが変更された場合、または設定>>アプリケーション>>管理アプリケーション→クリアデータからデータを消去した場合にのみ再作成されます。 そして、データを一度挿入する場合は、そのコードをdbHelperクラスのonCreat()に入れる必要があります。

関連する問題