欢迎分享,转载请注明来源:内存溢出
我明白你的意思,我以前也想过这个问题,把视频、等文件放入数据库中,但我发现这不是个好办法,最好上传保存到服务器的文件夹中,数据表的一个字段记录他们的url,读或视频的时候,根据url读就可以了采用大对象类型。 mysql 大对象存取: 类型一般应该用mediumblod, blob只能存2的16次方个byte, mediumblod是24次方, 一般来说够用了longblob是32次方有些大 MYSQL默认配置只能存1M大小的文件,要修改配置,WIN版本的在mysqlini文件中 修改max_allowed_packet,net_buffer_length等几个参数,或直接SET GLOBAL varName=value linux版本可以在启动参数后加-max_allowed_packet=xxM等几个参数 MYSQL存大对象最好直接就setBinaryStream,又快又方便 而不要先插入空再造型成BLOB然后再setBlob 例子: import javasql; import javaio; public class DBTest { static String driver = "orggjtmmmysqlDriver"; static String url = "jdbc:mysql://localhost:3306/test"; static String user = "root"; static String passwd = "passwd"; public static void main(String[] args) throws Exception { Connection conn = null; try { ClassforName(driver); conn = DriverManagergetConnection(url,user,passwd); int op = 1; //插入 if (op == 0) { PreparedStatement ps = connprepareStatement("insert into tb_file values (,)"); pssetString(1, "aaaexe"); InputStream in = new FileInputStream("d:/aaaexe"); pssetBinaryStream(2,in,inavailable()); psexecuteUpdate(); psclose(); } else { //取出 PreparedStatement ps = connprepareStatement("select from tb_file where filename = "); pssetString(1, "aaaexe"); ResultSet rs = psexecuteQuery(); rsnext(); InputStream in = rsgetBinaryStream("filecontent"); Systemoutprintln(inavailable()); FileOutputStream out = new FileOutputStream("d:/bbbexe"); byte[] b = new byte[1024]; int len = 0; while ( (len = inread(b)) != -1) { outwrite(b, 0, len); outflush(); } outclose(); inclose(); rsclose(); psclose(); } } catch (Exception ex) { e一般数据库都是不保存文件的,都是将文件保存在服务器硬盘上,然后数据库记录路径,额,我们公司是这样弄的,网上一般也是这样的,你可以把视频存在硬盘上,然后access保存视频的路径,额如果有问题,你可以百度HI我,我再去想办法
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
双硬盘的盘符错乱,在磁盘管理里面怎么修改?
上一篇
2023-05-09
如何实现div内的span垂直的定位?
下一篇
2023-05-09
评论列表(0条)