2012-03-21 17 views
0

私はSQLiteを使って自分のアプリケーションのデータベーステーブルを作成しています。私はオンラインで検索しましたが、答えはまだ見つかりませんでした:最初にデータベースを作成する必要があるのですか、または各アプリケーションのデフォルトデータベースがありますか?Android app create table

次のDBHelperクラスを作成しました。それは別のファイルにあります。アプリの起動時にどのように呼び出すのですか?

public class DataBaseHelper extends SQLiteOpenHelper{ 

    final String CREAT_TABLE = "CREATE TABLE IF NOT EXIST `employee` ("+ 
    "`id` int(11) NOT NULL AUTO_INCREMENT,"+ 
    "`firstName` varchar(30) NOT NULL,"+ 
    "`lastName` varchar(30) NOT NULL,"+ 
    "PRIMARY KEY (`id`)"+ 
    ") ;"; 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL(CREAT_TABLE); 
    } 
} 

答えて

2

を宣言します。 オープンヘルパーのスーパーコンストラクタを呼び出すときに、データベース名(sqliteファイル名)を指定します。 これは、必要に応じて(現在のバージョン番号のメタデータと比較して送信するバージョン番号によって)その名前のデータベースを作成または更新します。

私はあなたのコンストラクタはどのようなものか知っているが、のは、それは

public DatabaseHelper(final Context context) { 
    super(context, "mydatabase", null, 0); 
} 

のように見えると言うことはできませんその後SQLiteOpenHelperあなたはgetReadableDatabase()またはgetWritableDatabase()を呼び出したときに、「MyDatabaseという」という名前のデータベースを作成します。それはすべてthe docsです。

+0

ありがとうございました。このヘルパー関数を呼び出して、別のファイル/クラスにあるメインアクティビティにテーブルを作成するにはどうすればよいですか? – Yang

+1

ヘルパーは、そのほとんどを処理します。 'public abstract void onCreate(SQLiteDatabase db)'をオーバーライドしてそこにテーブルを作成してください。アプリのアップグレード時にデータベースのアップグレードをサポートしたい場合(dbバージョンが増加する場合)、onUpgradeでテーブルを作成することができます。古いデータを気にしない場合は、すべてのテーブルを削除してonUpgradeで再作成することができます。 dbバージョンを増やしたり、何とか処理したりせずにテーブルを追加しないでください。そうしないと、アプリのアップグレードのためにテーブルが足りなくなると壊れたアプリが表示されます。 –

+0

私の主なアクティビティに次のコードを追加しようとしましたが、動作しませんでした。 DataBaseHelper myDbHelper =新しいDataBaseHelper(これ); – Yang

1

あなたのデータベース名は、データベースを自分で作成する必要はありませんコンストラクタで

public DataBaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 
関連する問題