【发布时间】:2016-11-10 03:19:26
【问题描述】:
我读到 SQLite 数据库支持 boolean 值。这是我创建表的查询:
private static final String CREATE_TABLE_PROMEMORIE_RSI = "CREATE TABLE IF NOT EXIXSTS "
+ promemorieRSI.PROMEMORIE_RSI_TABLE + " ("
+ promemorieRSI.ID + " integer primary key autoincrement, "
+ promemorieRSI.GIORNO + " integer, "
+ promemorieRSI.MESE + " integer, "
+ promemorieRSI.ANNO + " integer, "
+ promemorieRSI.NOT_RIP_RSI + " boolean, "
+ promemorieRSI.RIP_VAL_RSI + " integer, "
+ promemorieRSI.UNIT_RIP_VAL_RSI + " text, "
+ promemorieRSI.NOT_FISSA_RSI + " boolean, "
+ promemorieRSI.ETICHETTA_RSI + " text, "
+ promemorieRSI.REQUEST_CODE_RSI + " integer);";
如您所见,我将not_rip_rsi 和not_fissa_rsi 列设置为boolean 值。我读到数据库将true 和false 值分别存储为1 和0 整数值,但现在我无法理解:
- 当我向数据库添加记录时,我应该为这些列使用什么值?
为了更好的解释,这是我的插入方法:
public void inserisciPromemoriaRSI(Integer giorno, Integer mese, Integer anno, Boolean not_rip, Integer rip_val, String unit_rip_val, Boolean not_fissa, String etichetta, Integer request_code){
ContentValues val = new ContentValues();
val.put(promemorieRSI.GIORNO, giorno);
val.put(promemorieRSI.MESE, mese);
val.put(promemorieRSI.ANNO, anno);
val.put(promemorieRSI.NOT_RIP_RSI, not_rip);
val.put(promemorieRSI.RIP_VAL_RSI, rip_val);
val.put(promemorieRSI.UNIT_RIP_VAL_RSI, unit_rip_val);
val.put(promemorieRSI.NOT_FISSA_RSI, not_fissa);
val.put(promemorieRSI.ETICHETTA_RSI, etichetta);
val.put(promemorieRSI.REQUEST_CODE_RSI, request_code);
mDb.insert(promemorieRSI.PROMEMORIE_RSI_TABLE, null, val);
}
如您所见,要添加记录,我对这些列使用了 boolean 值。即使我将这些列的条目的值设置为boolean 类型,当我添加记录时,我应该使用整数值1 或0 而不是boolean 值,还是将数据库自动将true 存储为1 和false 为0?我必须使用cursor.getInt(column_index) == 1 来获取布尔值吗?我在我的代码中犯了错误吗?如果是这样,我该如何解决这个问题。有什么建议?
【问题讨论】:
-
你的代码是什么语言的? PS你用谷歌搜索过这个吗?
-
已经看到有关此论点的问题,但无法回答我的问题
标签: android database sqlite relational-database android-sqlite