0

私にとって初投稿。私は初めて Android 開発に手を出しましたが、Java プログラミングの経験は限られています。私の質問に...

dbHelper クラスで複数のテーブルを作成する場合、どの方法が優先されますか?

作成文字列を保持する変数を初期化しています...

private static final String DATABASE_CREATE =
            "create table notes (_id integer primary key autoincrement, "+
            "title text not null, body text not null);";

db.execSQL(DATABASE_CREATE);

あるいは単に...

db.execSQL("create table notes (_id integer primary key autoincrement, "+
            "title text not null, body text not null);"
);

私はそれが両方の方法で行われるのを見てきました.コードが少ないよりも多い方が良い理由を理解しようとしています.

ありがとう!

4

3 に答える 3

0

@MrCleanXこのようにしてください。

public class DatabaseHandler extends SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "contactsManager";

// Contacts table name
private static final String TABLE_CONTACTS = "contacts";

// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";

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

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
            + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
            + KEY_PH_NO + " TEXT" + ")";
    db.execSQL(CREATE_CONTACTS_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);

    // Create tables again
    onCreate(db);
}
于 2012-12-05T17:27:22.783 に答える
0

ベスト プラクティスとして、定数を使用して作成する必要があります。これは、後でテーブルに変更を加える場合に役立ちます。

于 2012-12-05T17:28:06.737 に答える
0

個人的には、それらを最終的な静的文字列変数に保持して、1 か所で簡単に編集できるようにすることを好みます。そうすれば、それを読んだり、複数のデータベースに適用される可能性のあるものを変更したりしやすくなります。これは、ほとんどの開発者が最も好む方法だと思います。

public class myVariables {
     public final static String firstTable = "firstTableCreationQuery";
     public final static String secondTable = "secondTableCreationQuery";
}

そして、あなたはそれらに非常に簡単にアクセスできます

...
db.execSQL(myVariables.firstTable);
db.execSQL(myVariables.secondTable);
...
于 2012-12-05T17:32:38.820 に答える