のLong
代わりに列タイプのテーブルを作成したいInteger
。出来ますか?
のLong
代わりに列タイプのテーブルを作成したいInteger
。出来ますか?
回答:
INTEGER。値は符号付き整数で、値の大きさに応じて1、2、3、4、6、または8バイトに格納されます。
以来はlong
8バイトで、INTEGER
また8バイトの値を保存、使用することができますすることができますINTEGER
。
int
確認し、全体で長い間使用していることを確認してください。
INTEGER
タイプとして列を作成します。
db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_A + "("
+ KEY + " INTEGER" + ")");
入れlong
に値をINTEGER
カラム:
contentValues.put(KEY, object.getLongValue());
db.insert(TABLE_A, null, contentValues);
重要:次のようにカーソルから値を取得しますLONG
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_A, null);
long value = cursor.getLong(0);
タイプが長いとは思いません。INTEGER(または)Numericを使用できます。サポートされているデータタイプのリンクは次のとおりですhttp://www.sqlite.org/datatype3.html
彼の上記のリンクは64ビット整数または本質的に長いものを表しています。また、int、integer、bigintなどのSQLite整数データ型の違いは何ですか?を参照してください 。
SQLIteは、入力に応じて適切な整数幅を設定します
INTEGERは保存することができます長いけどから長い取得するには、カーソルのように行う必要があります。
int type = cursor.getType(j);
String value = cursor.getString(j);
try {
int intValue = Integer.parseInt(value);
field.set(object, intValue);
} catch (NumberFormatException e) {
long longValue = Long.parseLong(value);
field.set(object, longValue);
}
これを使用してタイムスタンプをsqliteに保存します