如何提取Java数据库的LOB?

问题描述 投票:0回答:1

我有一个包含巨大 LOB 的数据库,我想提取它。 7-Zip 可以提取类似的,但不能提取这个。元文件是这样的:

¬í w   sr java.util.ArrayListxÒ™Ça I sizexp   w   
sr org.axiondb.Column€Ó<žNPš° L _configt Ljava/util/Map;xpsr java.util.HashMapÚÁÃ`Ñ F 
loadFactorI     thresholdxp?@     w      t defaultValuept typesr org.axiondb.types.IntegerTypeãš–¶„¯‡  xr $org.axiondb.types.BaseNumberDataType+·îÐ÷ô}Ñ  xr org.axiondb.types.BaseDataType¨—oÝPÎ      xpt sqlTypet integert namet   CACHE_KEYxsq ~ sq ~ ?@     w      q ~ pq ~ sr org.axiondb.types.LOBTypeô±æ)[Úá% L _locatorFactoryt %Lorg/axiondb/types/LobLocatorFactory;L _raFilet Ljava/io/RandomAccessFile;xq ~ sr 'org.axiondb.types.FileLobLocatorFactoryžÛ¡ý×3 I _counterxp·Ç Êpq ~ 
t blobq ~ t CACHE_VALUExxsq ~ ?@     w       x

我在 Java 方面没有太多经验,但我可以用 C# 进行工作吗?

使用什么样的数据库?这项技术在 C# 中有等效技术吗?

java database blob
1个回答
0
投票

类似的东西

public byte[] getBlob(Long id) {
   try (Connection con = getConnection()) {
      PreparedStatement ps = con.prepareStatement("select blob_column from my_table where id = ?");
      ps.setLong(1, id);
      ResultSet rs = ps.executeQuery();
      rs.next();
      try (InputStream in = rs.getBinaryStream("blob_column")) {
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         byte buffer = new byte[1024];
         int count;
         while ((count = in.read(buffer)) > 0) {
            out.write(buffer, 0, count);
         }
         return out.toByteArray();        
      }
   }
      
}
© www.soinside.com 2019 - 2024. All rights reserved.