0

我使用该类创建表:

public class Category {
    public final static String CATEGORY_TITLE_FIELD_NAME  = "title";
    @SerializedName("id")
    @DatabaseField(id = true)
    int id;

    @SerializedName("title")
    @DatabaseField(dataType = DataType.STRING, columnName = CATEGORY_TITLE_FIELD_NAME)
    String title;

    // need for ORMlite
    public Category() {}

    public Category (int id, String title) {
        this.id = id;
        this.title = title;
    }
}

并得到这样的消息:

08-01 11:28:17.269:I/TableUtils(26960):执行的创建表语句更改了 1 行:CREATE TABLE levels( titleVARCHAR, idINTEGER, PRIMARY KEY ( id))

是不是我的表中有3个字段?或者有 2 个字段 - 'title' 和 'id' ...如果有 3 个字段,请告诉我为什么..

4

3 回答 3

0

是不是我的表中有3个字段?

你的表有两列,是什么让你认为有 3 列?如果分析sql语句:

CREATE TABLE 级别(标题 VARCHAR 、 id INTEGER 、 PRIMARY KEY (id) )

您将观察到有两列,titleid(这也是主键)。

如果您需要其他答案,请重新表述您的问题。

于 2012-08-01T09:20:03.030 回答
0

是不是我的表中有3个字段?或者有 2 个字段 - 'title' 和 'id' ...如果有 3 个字段,请告诉我为什么..

我假设您正在谈论生成的 SQL:

CREATE TABLE 级别(标题 VARCHAR 、 id INTEGER 、 PRIMARY KEY (id) )

那里没有定义 3 个字段。有 2 个字段 (titleid) 和一个PRIMARY KEY用于 Sqlite 的名称。Sqlite 使用PRIMARY KEYSQL 来定义应该索引哪个字段作为行的标识符。有关详细信息,请参阅Sqlite 文档

于 2012-08-01T13:33:56.400 回答
0

当我收到这样的消息

 08-01 11:28:17.269: I/TableUtils(26960): executed create table statement changed 1 rows: CREATE TABLE levels (title VARCHAR , id INTEGER , PRIMARY KEY (id) )

,这意味着创建 2 列,而不是 3。感谢Gray

于 2012-08-14T08:42:19.377 回答