尝试把图片文件转化成二进制存入Mysql数据库的blob类型的列中。我是想写个Java类实现简单的存入,但是运行出错。
网上有关错误提示码的解答,和我遇到的都不一样。而且大多是说是sql语句有问题,但我的Sql语句在其他工具中可以运行,
下面是源码,希望知道的朋友解答。我的这和类是根据Oracle的Java类改的,会不会是类里代码有问题。
import java.io.*;
import java.sql.*;
public class SavePicture

{
public static void main(String[] args)
{
Connection conn=null;
PreparedStatement stmt=null;
FileInputStream fis=null;
try
{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/databasename";
conn=DriverManager.getConnection(url,"username","password");
String sql="insert into tablename values(?,?,?)";
stmt=conn.prepareStatement(sql);
stmt.setString(1,"10");
stmt.setString(2,"shiyang");
File file=new File("aa.jpg");
fis=new FileInputStream(file);
stmt.setBinaryStream(3,fis,(int)file.length());
stmt.executeUpdate();
stmt.close();
}catch(Exception e)
{
e.printStackTrace(); 
}finally
{
try
{
if(fis!=null)
{
fis.close();
}
}catch(IOException ioe)
{
ioe.printStackTrace();
}
try
{
if(conn!=null)
{
conn.close();
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
}
补充dos下的运行出错截图:

数据表中的三个列分别是varchar(20)主键,varchar(20)not null,blob。
这个问题郁闷一天了,希望能尽快得到解答,谢谢。
补充:我可能是建表有问题,我直接通过SQLyogEnt也插不进二进制文件,但是我的数据类型的确是blob,到底是为什么???
郁闷
!!!
777

被折叠的 条评论
为什么被折叠?



