Java SQLite数据库中的HashMap

Java SQLite数据库中的HashMap,java,sqlite,Java,Sqlite,我想在SQLite数据库中存储一个HashMap。我曾经尝试过使用对象数据库,但它比我在android开发中想要的更庞大。我是否只是序列化它,然后存储序列化的结果?还是我必须做些别的事情?映射是键/值对。如果表的主键列与映射键匹配,则可以为每个映射项添加一行到数据库中。看到HashMap是一个键/值对,为什么不将所有键/值添加到JSON对象并将该对象存储在SQLite中?是的,这是可能的,但我受到ObjectOutputStream/ObjectInputStream工作过程的启发,认为也许通过

我想在SQLite数据库中存储一个HashMap。我曾经尝试过使用对象数据库,但它比我在android开发中想要的更庞大。我是否只是序列化它,然后存储序列化的结果?还是我必须做些别的事情?

映射是键/值对。如果表的主键列与映射键匹配,则可以为每个映射项添加一行到数据库中。

看到HashMap是一个键/值对,为什么不将所有键/值添加到JSON对象并将该对象存储在SQLite中?

是的,这是可能的,但我受到ObjectOutputStream/ObjectInputStream工作过程的启发,认为也许通过将序列化过程的字节输出存储在数据库中,我可以通过稍后对其进行反序列化来重建完全相同的对象。然后我还想,也许我误解了某些东西是如何工作的。。这听起来可能吗?@providence:可能,但它与关系数据库的纹理背道而驰,比如尝试使用手机显示器作为手电筒:如果你真的必须(我也确实必须)的话,你可以在必要时做这件事,但有一些工具更适合这项工作。只有一张地图或多张地图——如果多张,有多少张,等等?如何访问数据?这有很多不同的方法。我使用定制的非常紧凑的二进制序列化(尽管是在.NET中):我还有10k+映射(每个“项”两个,每个都有2-50+个键),其中几乎所有键都是重复的。例如,这与仅存储一组配置设置的要求大不相同。它只是一个映射,有三对字符串-->ArrayListan。另一种方法是只创建一个表,其中列是映射中的键。这适用于固定对象表示。如果映射是另一条记录的“一部分”,那么序列化可能更有意义。如果只是一个存储,那么使用可能是合适的(但是,如果适用,不要在“宽”表上使用EAV!)。只是不要拘泥于一种方法——选择一种适合设计的方法。我想如果我这样做,当我检索它时,它会在计算机上显示为一个字符串。不是这样吗?@providence-JSON-Is-a字符串序列化(嗯,实际上是文本)。各种JSON库允许以“对象图”的形式访问JSON,或将其转换为本机对象表示。见:-)