这是我的方法插入小于4k的数据没问题,但对大于4k的数据就插不进了:
public int insertBlob(File filename){//把文件保存到Blob字段中
Connection conn = null;
Conn lo_conn = null;
Blob blob = null;
String squery = null;
int i = 0;
try{
lo_conn = new Conn();
conn = lo_conn.getConnection();
if(conn == null){
System.out.println("数据库连接失败");
}
PreparedStatement ps = conn.prepareStatement("INSERT INTO BLOBTEST VALUES(?,?)");
FileInputStream instream = new FileInputStream(filename);
byte[] buffer = new byte[instream.available()];
ps.setBinaryStream(2,instream,instream.available());
ps.setString(1,filename.getName());
i = ps.executeUpdate();
ps.close();
}catch(SQLException e)
{
System.out.println(e.getMessage());
return 0;
}
catch (IOException e)
{
System.out.println(e.getMessage());
return 0;
}
finally{ conn.close();
return i;
}
}
public int insertBlob(File filename){//把文件保存到Blob字段中
Connection conn = null;
Conn lo_conn = null;
Blob blob = null;
String squery = null;
int i = 0;
try{
lo_conn = new Conn();
conn = lo_conn.getConnection();
if(conn == null){
System.out.println("数据库连接失败");
}
PreparedStatement ps = conn.prepareStatement("INSERT INTO BLOBTEST VALUES(?,?)");
FileInputStream instream = new FileInputStream(filename);
byte[] buffer = new byte[instream.available()];
ps.setBinaryStream(2,instream,instream.available());
ps.setString(1,filename.getName());
i = ps.executeUpdate();
ps.close();
}catch(SQLException e)
{
System.out.println(e.getMessage());
return 0;
}
catch (IOException e)
{
System.out.println(e.getMessage());
return 0;
}
finally{ conn.close();
return i;
}
}
解决方案 »
- 类的问题;迷茫!求助!
- 如果获得这个jsf+ajax的framework代码
- 请问jdbc for SQL Server 支持JDK1.4吗?
- 有关创建String的几个问题,还有对于String不变性的理解的疑问
- JB的问题?~~~急(在线)
- 如何将一串字符写入文件中 (100分)
- 请解释下下面的java代码
- 紧急求助
- 请问Hastable,ArrayList,Array,Enumeration,Collection有什么区别?
- 寻求java程序员和IBM大机人员,可以到新加坡工作.有意者请致函[email protected]
- 写文件时如何不覆盖前面的内容???
- jar文件是否是可执行文件
实在不行,用两个字段来实现。