`

救助贴???关于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,到底是为什么???

 

郁闷!!!

分享到:
评论
2 楼 shiyangxt 2011-12-13  
忧_零 写道
不知道这个问题LZ是否解决了啊,今天同样碰到这个问题了,错误相似。请问LZ是如何解决的?

没解决,二进制文件不适合存到数据库里,数据库存文件链接就行了。
1 楼 忧_零 2011-11-16  
不知道这个问题LZ是否解决了啊,今天同样碰到这个问题了,错误相似。请问LZ是如何解决的?

相关推荐

Global site tag (gtag.js) - Google Analytics