在Mysql中存入图片

//在Mysql中存入图片
import java.sql.*;


import java.io.*;


import java.nio.*;


public class UploadImage {


    protected Connection dbConnection;


    protected String driverName = "com.mysql.jdbc.Driver";


    protected String dbURL = "jdbc:mysql://localhost:3306/test";


  protected String userID = "root";


  protected String passwd = "123";


    public boolean storeImage(String sqlstr,File file){


        try{


            FileInputStream fin = new FileInputStream(file);


            ByteBuffer nbf = ByteBuffer.allocate((int)file.length());


            byte[] array = new byte[1024];


            int offset =0,length=0;


            while((length=fin.read(array))>0){


                if(length!=1024)


                     nbf.put(array,0,length);


                else


                     nbf.put(array);


                 offset+=length;


                


            }


             fin.close();


            byte[] content = nbf.array();


            return setImage(sqlstr,content);


            


        }catch(FileNotFoundException e){


             e.printStackTrace();


            }catch (IOException e){


                 e.printStackTrace();


                }


            return false;


    


    }


    


    private boolean setImage(String sqlstr,byte[]in){


        boolean flag = false;


        if(sqlstr==null)


             sqlstr="select * from picture_db";


        try{


             Class.forName(driverName);


              dbConnection = DriverManager.getConnection(dbURL,userID,passwd);


             Statement stmt = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);


             ResultSet rs = stmt.executeQuery(sqlstr);


             if(rs.next()){


               rs.updateBytes(2,in);


              rs.updateRow();


             }


             else{


                 rs.moveToInsertRow();


                 rs.updateString(1,"02");


                 rs.updateBytes(2,in);


                 rs.insertRow();


             }


              rs.close();


              flag=true;


             


        }catch(Exception e){


             e.printStackTrace();


        }


        return flag;


        


    }


    


    public static void main(String[] args){


         UploadImage upload = new UploadImage();


        try{


            File file = new File("b.jpg");


            if(upload.storeImage(null, file))


            System.out.print("存入图片");


            else


                System.out.print("失败!");


            


        }catch(Exception e){


             e.printStackTrace();


        }


    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值