我无法找到Android的Ormlite DataType映射到Sqlite。我找到OrmLite SQL Data Types但是Sqlite列是空白的。有人知道我能找到他们吗?
我需要他们更新我的数据库架构,即:
meetingDao.executeRaw("ALTER TABLE meeting ADD closed ????");
答案 0 :(得分:1)
我不确定你在问什么,但Sqlite是一个无类型的数据库。一切都基本上存储为字符串,某些函数允许在运行时对这些字符串进行数值,时间等计算。
SQLite是“无类型的”。这意味着您可以将任何类型的数据存储在任何表的任何列中,而不管该列的声明数据类型如何。 (请参阅下面第2.0节中此规则的一个例外。)此行为是一个功能,而不是错误。数据库假设存储和检索数据,数据库的格式应该无关紧要。大多数其他SQL引擎中存在的强类型系统和SQL语言规范中的编码是错误的 - 它是一个例子通过界面显示的实现。 SQLite试图通过允许您将任何类型的数据存储到任何类型的列中并允许灵活地指定数据类型来克服这种错误。
在您提到的SQL Data Types页面中,Sqlite列是空白的,因为它使用基础数据列而无需覆盖它们。即使我更改了类的基类型,Sqlite也不会覆盖任何类型,因为它再次是一个无类型的数据库。
答案 1 :(得分:1)
实际上,由原始问题链接的映射表:OrmLite SQL Data Types显示了ORMLite正在使用的正确类型,尽管它仅显示基础数据库列中每个数据库的差异。例如,Java long
被创建为具有BIGINT
类型的列。
虽然SQLite3没有类型,但它具有type affinities的概念,ORMLite在创建表时使用它。
您可能也应该在数据库升级中包含类型,或者当ORMLite自动创建表格表格和升级时,您将获得不同的表定义。