救助贴???关于Mysql插入二进制文件

尝试把图片文件转化成二进制存入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,到底是为什么???

 

郁闷!!!

posted on 2008-08-17 01:04  俱正Steven  阅读(1246)  评论(5编辑  收藏  举报

导航