【问题标题】:Android - BaseColumns and _idAndroid - BaseColumns 和 _id
【发布时间】:2013-01-17 05:01:20
【问题描述】:

我正在阅读这个帖子:What is the use of BaseColumns in Android,我知道了如何使用 BaseColumns,您必须在 SELECT 语句中获取 _id。

我还不清楚 _id 字段是什么时候“内部”创建的?是在 execSQL(...) 期间 Android 添加了 _id 字段吗?或者,我们还需要在 CREATE TABLE 语句中定义它吗?

【问题讨论】:

  • 据我所知,你需要创建它。

标签: android database sqlite


【解决方案1】:

您必须“手动”创建它。 Android 不会为您这样做。

例如,在创建表期间,您发出:

CREATE TABLE messages (_id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp INTEGER, message TEXT);

看到了吗? _id 列已显式命名和添加。

或者,按照 DB-helper 类的约定,你会想出类似的东西:

db.execSQL("CREATE TABLE " + TABLE_MESSAGES + " ("
        + BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
        + COLUMN_TIMESTAMP + " INTEGER,"
        + COLUMN_MESSAGE + " TEXT"
        + ");");

TABLE_*COLUMN_* 是 DB-helper 的常量字段,例如:

public static final String TABLE_MESSAGES = "messages";
public static final String COLUMN_TIMESTAMP = "timestamp";
public static final String COLUMN_MESSAGE = "message";

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 2011-08-15
相关资源
最近更新 更多