我通过Zentus在Java代码中使用SQLite。
我需要在我的数据库中映射Java long
基元类型。为此,我尝试使用以下语句创建表:CREATE TABLE MY TABLE (...., LONG time, ...)
。
使用Zentus通过Java插入数据库可以很好地工作,但是在检索数据时,总是通过Java和Zentus,LONG值会缩小到32位值。
我尝试使用SQlite直接查询数据库并且它可以工作,因此我猜问题是JDBC驱动程序。
你们中的一些人是否已经遇到过这样的问题,你们是如何解决的?
答案 0 :(得分:1)
SQLite有4种原始类型:
某些关键字会转换为这些类型,未知关键字默认为文字。 “整数”类型有点特殊,因为SQLite只保留记录最大数字所需的最小大小。如果您的最大数字小于2 ^ 31,则将以32位记录。我不知道它会缩小回来,如果它扩展到64位,那么所有大于2 ^ 31的值都被删除,或者它只是保持不变。如果数据库被抽真空,它肯定会收缩。
我可以建议保留一个64位值的虚拟记录,尝试查看JDBC之后的行为。