注意sqlite3和java的整数数据类型的区别

作为新手的我,没有考虑数据库和java的数据类型的对应上的区别:

sqlite3的数据类型和java数据类型对应上要小心,特别是整数类型。

java 中int类型4位存储,范围 -2^31到2^31-1,即-2147483648到2147483647

java 中long类型8位存储,范围-2^63到2^63-1,即--9223372036854775808到9223372036854775807

sqlite3的integer类型用1, 2, 3, 4, 6, or 8位存储。原文:    

  • INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

 

所以java中byte,short,int,long类型表示的范围都在sqlite3的integer类型范围中。

现在可以看到sqlite3的integer不等于java的integer类型,因为表示范围不同。

如果sqlite3的integer类型表示的范围在-2147483648到2147483647间,那么java对应的用integer类型也可以,如果sqlite3的integer类型表示的范围超过了-2147483648到2147483647间,而位于-9223372036854775808到9223372036854775807间,那么java就必须用long类型表示。

 

posted @ 2015-09-21 20:53  一起简单  Views(1553)  Comments(0Edit  收藏  举报