您的位置:首页 >综合百科 >正文

blob类型的数据是根据二进制编码进行比较和排序(blob类型)

摘要 关于blob类型的数据是根据二进制编码进行比较和排序,blob类型不少朋友还不清楚,今天小二来为大家解答以上的问题,现在让我们一起来看看吧

关于blob类型的数据是根据二进制编码进行比较和排序,blob类型不少朋友还不清楚,今天小二来为大家解答以上的问题,现在让我们一起来看看吧!

1、这个是mysql下存取blob字段的一个很简单的类,跟据自己的需要改改就行了/*** Title:         ***.java* Project:       test* Description:  把图片存入mysql中的blob字段,并取出* Call Module:  mtools数据库中的tmp表  * File:         C:downloadsluozsh.jpg* Copyright:    Copyright (c) 2003-2003* Company:      uniware* Create Date:  2002.12.5* @Author:      FeiFan* @version 1.0 版本*      * *  Revision history*  Name         Date                   Description*  ----             ----               -----------*        Chenqh          2003.12.5        对图片进行存取** note:         要把数据库中的Blob字段设为longblob        **///package com.uniware;import ***.io.*;import java.util.*;import java.sql.*;public class BlobPros{    private static final String URL = "jdbc:mysql://10.144.123.63:3306/mtools?user=wind&password=123&useUnicode=true";    private Connection conn = null;    private PreparedStatement pstmt = null;    private ResultSet rs = null;    private File file = null;        public BlobPros()    {    }    /**    * 向数据库中插入一个新的BLOB对象(图片)    *    * @param infile - 要输入的数据文件    * @throws java.lang.Exception    *     */   public void blobInsert(String infile) throws Exception   {       FileInputStream fis = null;              try            {               Class.forName("org.gjt.mm.mysql.Driver").newInstance();               conn = DriverManager.getConnection(URL);                           file = new File(infile);               fis = new FileInputStream(file);               //InputStream fis = new FileInputStream(infile);                       pstmt = conn.prepareStatement("insert into tmp(descs,pic) values(?,?)");                       pstmt.setString(1,file.getName());    //把传过来的第一个参数设为文件名               //pstmt.setBinaryStream(2,fis,(int)file.length());   //这种方法原理上会丢数据。

2、因为file.length()返回的是long型                       pstmt.setBinaryStream(2,fis,fis.available());  //第二个参数为文件的内容                       pstmt.executeUpdate();                    }           catch(Exception ex)           {          System.out.println("[blobInsert error : ]" + ex.toString());           }               finally               {               //关闭所打开的对像//               pstmt.close();               fis.close();               conn.close();           }    }        /**    * 从数据库中读出BLOB对象    *    * @param outfile - 输出的数据文件    * @param picID - 要取的图片在数据库中的ID    * @throws java.lang.Exception    *     */    public void blobRead(String outfile,int picID) throws Exception    {         FileOutputStream fos = null;        InputStream is = null;        byte[] Buffer = new byte[4096];            try            {                Class.forName("org.gjt.mm.mysql.Driver").newInstance();                conn = DriverManager.getConnection(URL);                pstmt = conn.prepareStatement("select pic from tmp where id=?");                pstmt.setInt(1,picID);         //传入要取的图片的ID                rs = pstmt.executeQuery();                ***.next();                                      file = new File(outfile);                if(!file.exists())                {                    file.createNewFile();     //如果文件不存在,则创建                }                fos = new FileOutputStream(file);                is = rs.getBinaryStream("pic");                int size = 0;               /* while(size != -1)                {                    size = ***.read(Buffer);    //从数据库中一段一段的读出数据                    //System.out.println(size);                    if(size != -1)            //-1表示读到了文件末                        fos.write(Buffer,0,size);                }  */                while((size = ***.read(Buffer)) != -1)                                {                    //System.out.println(size);                    fos.write(Buffer,0,size);                                }                                               }            catch(Exception e)            {                System.out.println("[OutPutFile error : ]" + e.getMessage());             }            finally            {                //关闭用到的资源                fos.close();                rs.close();                pstmt.close();                conn.close();            }    }         public static void main(String[] args)    {        try        {                        BlobPros blob = new BlobPros();            //blob.blobInsert("C:\Downloads\luozsh1.jpg");                       blob.blobRead("c:/downloads/luozishang.jpg",47);        }        catch(Exception e)        {            System.out.println("[Main func error: ]" + e.getMessage());         }    }}。

本文到此分享完毕,希望对你有所帮助。

版权声明:本文由用户上传,如有侵权请联系删除!