尝试把图片文件转化成二进制存入Mysql数据库的blob类型的列中。我是想写个Java类实现简单的存入,但是运行出错。

 

网上有关错误提示码的解答,和我遇到的都不一样。而且大多是说是sql语句有问题,但我的Sql语句在其他工具中可以运行,

 

下面是源码,希望知道的朋友解答。我的这和类是根据Oracle的Java类改的,会不会是类里代码有问题。

 

 

救助贴???关于Mysql插入二进制文件import java.io.*;
救助贴???关于Mysql插入二进制文件
import java.sql.*;
救助贴???关于Mysql插入二进制文件
救助贴???关于Mysql插入二进制文件
public class SavePicture
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件
救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件    
public static void main(String[] args)救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件       Connection conn
=null;
救助贴???关于Mysql插入二进制文件       PreparedStatement stmt
=null;
救助贴???关于Mysql插入二进制文件       FileInputStream fis
=null;
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件       
try救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件           Class.forName(
"com.mysql.jdbc.Driver");
救助贴???关于Mysql插入二进制文件           String url
="jdbc:mysql://localhost:3306/databasename";
救助贴???关于Mysql插入二进制文件           conn
=DriverManager.getConnection(url,"username","password");
救助贴???关于Mysql插入二进制文件           String sql
="insert into tablename values(?,?,?)";
救助贴???关于Mysql插入二进制文件           stmt
=conn.prepareStatement(sql);
救助贴???关于Mysql插入二进制文件           stmt.setString(
1,"10");
救助贴???关于Mysql插入二进制文件           stmt.setString(
2,"shiyang");
救助贴???关于Mysql插入二进制文件           File file
=new File("aa.jpg");
救助贴???关于Mysql插入二进制文件           fis
=new FileInputStream(file);
救助贴???关于Mysql插入二进制文件           stmt.setBinaryStream(
3,fis,(int)file.length());
救助贴???关于Mysql插入二进制文件           stmt.executeUpdate();
救助贴???关于Mysql插入二进制文件           stmt.close();
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件       }
catch(Exception e)救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件         e.printStackTrace();       
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件       }
finally救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件          
try救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件              
if(fis!=null)救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件                fis.close();
救助贴???关于Mysql插入二进制文件              }

救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件          }
catch(IOException ioe)救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件             ioe.printStackTrace();
救助贴???关于Mysql插入二进制文件          }

救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件         
try救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件             
if(conn!=null)救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件                conn.close();
救助贴???关于Mysql插入二进制文件             }

救助贴???关于Mysql插入二进制文件救助贴???关于Mysql插入二进制文件         }
catch(Exception e)救助贴???关于Mysql插入二进制文件{
救助贴???关于Mysql插入二进制文件             e.printStackTrace();
救助贴???关于Mysql插入二进制文件         }

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

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

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

 

补充dos下的运行出错截图:

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

 

数据表中的三个列分别是varchar(20)主键,varchar(20)not null,blob。

 

这个问题郁闷一天了,希望能尽快得到解答,谢谢。

 

补充:我可能是建表有问题,我直接通过SQLyogEnt也插不进二进制文件,但是我的数据类型的确是blob,到底是为什么???

 

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

相关文章: