问题描述
现在有一个float[20000]数组,我想保存到数据库,然后还可以从数据库里面还原成float数组,该如何操作,有什么思路。我的想法:把数组转换成字符串,然后写入数据库,完了再把字符串解析成数组,但是怎么把数组转换成字符串呢,Java里面有什么命令可以快速转换呢?这样做比较麻烦,有其它简单的方法吗? 问题补充:看来同志们各有各的方法啊,有没有一种最简单,效率最高的方法呢??
解决方案
Stringbuffer sb = new StringBuffer(20000);for(float f:target)sb.append(f).append(",");float[] result = db.split(",");不过oracle数据库varchar2也就能存4000个字符,你这个超过了可能需要用大字段了
解决方案二:
有个技术叫序列化和反序列化,简单的很!
解决方案三:
建议使用序列号接口。在数据库中存为LOG类型。读取的时候,将其byte[]转为float[].存的时候,将float[]转为byte[]注意,配置hibernate时,配置访问类型为field访问。也就是每次hibernate映射,都映射到字段。而不是getter,setter方法上。
解决方案四:
可以使用JDBC中的ARRAY实现数据存储,拼接成字符串数据库再拆分,效率不高。数据库新建一个type,JAVA使用oracle.sql.ArrayDescriptor对该type进行描述,再通过oracle.sql.ARRAY存储数组。实现数组传递给数据库。
解决方案五:
String 存为 blob或clob 自己写JDBC的存储方式也可以使用hibernate的映射来存储
解决方案六:
转成byte[](oracle对应的是blob)存储不可以吗?
解决方案七:
google的gson.jar,不但可以将数组转换成json字符串,并且可以讲json字符串转为指定的数组,建议使用