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

就我个人而言,我更喜欢将它们保存在最终的静态字符串变量中,这样我就可以在一个地方轻松地编辑它们,这样我就更容易阅读它并更改可能适用于多个数据库的内容。我认为这是大多数开发人员最喜欢的方式。

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 回答
0

作为最佳实践,您应该使用常量来创建。当您以后想对表格进行一些更改时,这将为您提供帮助

于 2012-12-05T17:28:06.737 回答
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 回答