作为新手的我,没有考虑数据库和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类型表示。

 

相关文章:

  • 2021-05-17
  • 2022-12-23
  • 2021-08-24
  • 2021-08-30
  • 2021-05-22
猜你喜欢
  • 2022-12-23
  • 2021-08-31
  • 2022-12-23
  • 2022-02-22
  • 2022-12-23
  • 2021-10-02
  • 2021-05-25
相关资源
相似解决方案