其实文件不建议保存在数据库,保存URL会更好,文件这种让文件系统去操作更好。存在数据库读取会影响性能!
数据库在存储数据时,有两种格式,一种是以字节存储的,二进制数据。
另一种是以字符形式存储的。
数据库要存储二进制数据,其数据库的列的属性必须是二进制类型的,如MySQL中,类型为BINARY和VARBNARY的列以二进制形式存储数据。
因为二进制一般都是字节数组,所以,要使用动态的SQL语句,要执行动态的SQL语句,必须使用PerparedStatement,
它的setBytes方法给未确定部分赋字节数组值。然后调用executeUpdate方法遍完成二进制数据的写入。同样道理,要从数据库中读取二进制数据的时候,
遍历结果集调用ResultSet的getBytes方法。获得字节数组(也就是二进制数组)。
二进制数组一般存储比较大的数据,如图片,影视文件。
如果数据库列属性是Blob的,获得结果集后调用ResultSet的getBlob方法,获得Blob数据,一个java.sql.Blob对象。Blob类的getBinaryStream方法获得Blob数据的字节输入流。便可以读取Blob数据。