Java 在数据库中存储文件
我必须使用Java将任何格式的文件(XLS、PDF、DOC、JPG…)保存在数据库中。根据我的经验,我会将文件的二进制数据存储到BLOB类型字段中,有人告诉我另一种方法是使用BASE64将二进制数据编码为文本,并将字符串存储在文本类型字段中。执行此任务的最佳选项是哪一个 谢谢Java 在数据库中存储文件,java,sql,database,Java,Sql,Database,我必须使用Java将任何格式的文件(XLS、PDF、DOC、JPG…)保存在数据库中。根据我的经验,我会将文件的二进制数据存储到BLOB类型字段中,有人告诉我另一种方法是使用BASE64将二进制数据编码为文本,并将字符串存储在文本类型字段中。执行此任务的最佳选项是哪一个 谢谢 Paul ManjarresBLOB会更好,因为您可以使用byte[]数据类型,并且不必从BASE64进行编码/解码。没有理由将BASE64用于简单存储。使用BLOB的理由是,它占用更少的CPU周期、更少的磁盘和网络i/o
Paul ManjarresBLOB会更好,因为您可以使用byte[]数据类型,并且不必从BASE64进行编码/解码。没有理由将BASE64用于简单存储。使用BLOB的理由是,它占用更少的CPU周期、更少的磁盘和网络i/o、更少的代码,并降低出现错误的可能性:
使用BLOB将它们放入数据库中
- FILE to BLOB=DB不会查询内容并将其视为。。。好。。。一个无意义的二进制BLOB,无论其内容如何。DB知道该字段可能是1KB或1GB,并相应地分配资源
- FILE to TEXT=DB可以查询这个东西。可以在文件中搜索或修改字符串。但这次DBMS将花费更多的资源来实现这一点。字段中可能有100个字符长的文本,该字段可能存储或不存储100万个字符长的文本。文件可以具有任何类型的文本编码,并且由于表/DB编码设置,可能会丢失无效字符。如果在SQL查询中不使用文件内容,则无需使用此选项
- BASE64=将任何内容转换为超有效文本。绕过所有兼容性问题的解决方法。存储在任何地方,打印,电报,写在纸上,将你最喜欢的自拍转换成私钥。输出将毫无意义和更大,但它将是一个普通的文本李>