SQLite使用ContentValues和BigInteger数据类型?

时间:2011-06-27 14:33:18

标签: android database sqlite biginteger

所以,我试图在Android中的SQLite db上存储一些数据,

表格结构如下:

e BIGINT NOT NULL, n BIGINT NOT NULL, phoneNo TEXT NOT NULL PRIMARY KEY

我试图用这样的东西来做:

BigInteger e, n;
String phoneNo;
ContentValues values= new ContentValues();
initialValues.put(KEY_PUB_E, e);
initialValues.put(KEY_PUB_N, n);
initialValues.put(KEY_PUB_PHONE, phoneNo);
mDb.insert(DATABASE_TABLE, null, values);

但是ContentValues不会接受BigInteger数据类型,所以我想使用int或long,但它会导致数据发生变化吗?和SQLite确实支持BIGINT吗?

对我来说还有另一个选择是使用execSQL方法,但后来有一个部分我需要涉及很多coloumns并且会让它太复杂......

我该怎么做?

2 个答案:

答案 0 :(得分:2)

引自HERE:INTEGER。该值是有符号整数,存储为1,2,3,4,6或8个字节,具体取决于值的大小。

您可以使用长数据类型,也可以使用Bigint的longValue()方法。

答案 1 :(得分:-4)

感谢帮助,woodshy,

我想要的最简单的解决方案是将值存储为文本,并在检索时将其转换回BigInteger。不应该是一个问题,因为在应用程序的运行时期间这不常做...

你怎么看待这个?