我用一个循环往数据库里面存文件,本来可以作为文件存放数据库里面只放文件的位置的,但是没有办法租的服务器网页空间大小有限制数据库没有限制。语句是这样的
public static final DataBase.MAXSIZE=1024*512;
for(int i=0;i<size;i+=DataBase.MAXSIZE){
System.out.println(i);
PreparedStatement sql=con.prepareStatement("insert into FILE_DATA_TABLE(DATA_SIZE,DATA_CON,FILE_ID)values(?,0,?);");
if((size-i)>DataBase.MAXSIZE){
sql.setInt(1, DataBase.MAXSIZE);
sql.setBinaryStream(2, in, DataBase.MAXSIZE);
}else{
sql.setInt(1,in.available()-i);
sql.setBinaryStream(2, in,in.available()-i);
break;
}
sql.setInt(2, this.fILE_ID);
sql.execute();
sql=null;
}
但是总会抛出 Packet for query is too large (6921195 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.各位有没有解决办法?
public static final DataBase.MAXSIZE=1024*512;
for(int i=0;i<size;i+=DataBase.MAXSIZE){
System.out.println(i);
PreparedStatement sql=con.prepareStatement("insert into FILE_DATA_TABLE(DATA_SIZE,DATA_CON,FILE_ID)values(?,0,?);");
if((size-i)>DataBase.MAXSIZE){
sql.setInt(1, DataBase.MAXSIZE);
sql.setBinaryStream(2, in, DataBase.MAXSIZE);
}else{
sql.setInt(1,in.available()-i);
sql.setBinaryStream(2, in,in.available()-i);
break;
}
sql.setInt(2, this.fILE_ID);
sql.execute();
sql=null;
}
但是总会抛出 Packet for query is too large (6921195 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.各位有没有解决办法?
解决方案 »
- 基于Ajax+SSH的个人博客网站正式上线,散分
- 用js做一个当点击所在省份,相应的会出现所在城市(求代码)
- css 两个table之间如何紧挨着
- Linux ???如何刻录光盘镜像???
- jdbc直接连SqlServer出错?急啊!
- 下载的bdk里面工具栏里没有button是怎么回事啊
- 如何在web页面上实现统计图表??
- jsp中不显示mysql数据库字段中文问题
- 谁知道那里有j2sdk1.4 下在呀?不声感激!
- 一个疑惑有关JSP的?
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 Flex如何接收java返回的对象,并和dataGrid进行绑定
- There is no Action问题
max_allowed_packet = 1048576所以,必须修改mysql设置:
[mysqld]
max_allowed_packet=16M