救助贴???关于Mysql插入二进制文件
尝试把图片文件转化成二进制存入Mysql数据库的blob类型的列中。我是想写个Java类实现简单的存入,但是运行出错。
网上有关错误提示码的解答,和我遇到的都不一样。而且大多是说是sql语句有问题,但我的Sql语句在其他工具中可以运行,
下面是源码,希望知道的朋友解答。我的这和类是根据Oracle的Java类改的,会不会是类里代码有问题。
 import java.io.*;
import java.io.*; import java.sql.*;
import java.sql.*;
 public class SavePicture
public class SavePicture {
{ public static void main(String[] args){
    public static void main(String[] args){ Connection conn=null;
       Connection conn=null; PreparedStatement stmt=null;
       PreparedStatement stmt=null; FileInputStream fis=null;
       FileInputStream fis=null; try{
       try{ Class.forName("com.mysql.jdbc.Driver");
           Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/databasename";
           String url="jdbc:mysql://localhost:3306/databasename"; conn=DriverManager.getConnection(url,"username","password");
           conn=DriverManager.getConnection(url,"username","password"); String sql="insert into tablename values(?,?,?)";
           String sql="insert into tablename values(?,?,?)"; stmt=conn.prepareStatement(sql);
           stmt=conn.prepareStatement(sql); stmt.setString(1,"10");
           stmt.setString(1,"10"); stmt.setString(2,"shiyang");
           stmt.setString(2,"shiyang"); File file=new File("aa.jpg");
           File file=new File("aa.jpg"); fis=new FileInputStream(file);
           fis=new FileInputStream(file); stmt.setBinaryStream(3,fis,(int)file.length());
           stmt.setBinaryStream(3,fis,(int)file.length()); stmt.executeUpdate();
           stmt.executeUpdate(); stmt.close();
           stmt.close(); }catch(Exception e){
       }catch(Exception e){ e.printStackTrace();
         e.printStackTrace();        }finally{
       }finally{ try{
          try{ if(fis!=null){
              if(fis!=null){ fis.close();
                fis.close(); }
              } }catch(IOException ioe){
          }catch(IOException ioe){ ioe.printStackTrace();
             ioe.printStackTrace(); }
          } try{
         try{ if(conn!=null){
             if(conn!=null){ conn.close();
                conn.close(); }
             } }catch(Exception e){
         }catch(Exception e){ e.printStackTrace();
             e.printStackTrace(); }
         } 
        }
       } }
    } }
}
补充dos下的运行出错截图:
数据表中的三个列分别是varchar(20)主键,varchar(20)not null,blob。
这个问题郁闷一天了,希望能尽快得到解答,谢谢。
补充:我可能是建表有问题,我直接通过SQLyogEnt也插不进二进制文件,但是我的数据类型的确是blob,到底是为什么???
郁闷 !!!
!!!
作者:Steven(Steven's Think out)
出处:http://shiyangxt.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 
 
                    
                     
                    
                 
                    
                

 
     
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号