使用SQLite和Zentus Jdbc驱动程序的长类型

时间:2010-07-29 08:48:35

标签: sqlite jdbc

我通过Zentus在Java代码中使用SQLite。

我需要在我的数据库中映射Java long基元类型。为此,我尝试使用以下语句创建表:CREATE TABLE MY TABLE (...., LONG time, ...)

使用Zentus通过Java插入数据库可以很好地工作,但是在检索数据时,总是通过Java和Zentus,LONG值会缩小到32位值。

我尝试使用SQlite直接查询数据库并且它可以工作,因此我猜问题是JDBC驱动程序。

你们中的一些人是否已经遇到过这样的问题,你们是如何解决的?

1 个答案:

答案 0 :(得分:1)

SQLite有4种原始类型:

  • 文本
  • 整数
  • 斑点

某些关键字会转换为这些类型,未知关键字默认为文字。 “整数”类型有点特殊,因为SQLite只保留记录最大数字所需的最小大小。如果您的最大数字小于2 ^ 31,则将以32位记录。我不知道它会缩小回来,如果它扩展到64位,那么所有大于2 ^ 31的值都被删除,或者它只是保持不变。如果数据库被抽真空,它肯定会收缩。

我可以建议保留一个64位值的虚拟记录,尝试查看JDBC之后的行为。