我有一个java.util.BitSet数组,我想在我的数据库中保留,但我不知道最好的方法是什么.
确切地说,对于我想要存储的每个条目,我得到x * y true或false值.我试过java.util.BitSet是一个很好的调用尝试,但我真的不知道如何将它存储在数据库中.
我正在使用带有hibernate的MySQL数据库(带注释).
这是我初始化我的地图的方式:
Bitset[] map = new BitSet[x];
for (int i = 0; i < x; i++) {
map[i] = new BitSet(y);
}
更新:
这个数据集没有任何关系,问题是我有大量的这些“二维阵列”,一件大小约为360 * 180.
我也试图用它制作一个图像,一个单色的pbm文件很容易制作.但是数据不在数据库中,并且每次处理保存的“图像”文件都是过度的,我认为有点慢.
解决方法:
你可以在数据库中有一列int(或等价的).
如果你有2列并假设每列是32位,你可以输入
第1行col 1 32位,然后第1行col 2接下来32,然后你去
第2行第1行并重新开始,依此类推.
你可以利用这些位之间有任何关系吗?
或者它只是一个大转储?
注意:我使用这种技术打包/压缩数据,因此可能不是您需要的.
编辑:
我正在考虑存储原始blob并通过将它们存储在单独的实体(新表或更多列)中来跟踪修改后的位
你有原始blob,然后是BitIndex:BitNewValue的映射.
一个更合适的框架现在是map reduce.
但我可以看到,如果改变很多位,如何管理这样的事情会变得非常头痛.