關(guān)于Oracle數(shù)據(jù)庫blob類型,blob類型這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、這個是mysql下存取blob字段的一個很簡單的類,跟據(jù)自己的需要改改就行了/*** Title:? ?? ?? ?***.java* Project:? ?? ? test* Description:??把圖片存入mysql中的blob字段,并取出* Call Module:??mtools數(shù)據(jù)庫中的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? ?? ???對圖片進(jìn)行存取** note:? ?? ?? ?要把數(shù)據(jù)庫中的Blob字段設(shè)為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()? ? {? ? }? ? /**? ? * 向數(shù)據(jù)庫中插入一個新的BLOB對象(圖片)? ? *? ? * @param infile - 要輸入的數(shù)據(jù)文件? ? * @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());? ? //把傳過來的第一個參數(shù)設(shè)為文件名? ?? ?? ?? ?? ?//pstmt.setBinaryStream(2,fis,(int)file.length());? ?//這種方法原理上會丟數(shù)據(jù)。
2、因為file.length()返回的是long型? ? ? ?? ???? ? ? ?? ? pstmt.setBinaryStream(2,fis,fis.available());??//第二個參數(shù)為文件的內(nèi)容? ? ? ?? ???? ? ? ?? ? pstmt.executeUpdate();? ? ? ?? ???? ? ? ? }? ?? ?? ???catch(Exception ex)? ?? ?? ???{? ?? ?? ? System.out.println("[blobInsert error : ]" + ex.toString());? ?? ?? ???}? ? ? ? ? ?? ? finally? ? ? ?? ?? ???{? ?? ?? ?? ?? ?//關(guān)閉所打開的對像//? ?? ?? ?? ?? ?pstmt.close();? ?? ?? ?? ?? ?fis.close();? ?? ?? ?? ?? ?conn.close();? ?? ?? ???}? ? }? ? ? ? /**? ? * 從數(shù)據(jù)庫中讀出BLOB對象? ? *? ? * @param outfile - 輸出的數(shù)據(jù)文件? ? * @param picID - 要取的圖片在數(shù)據(jù)庫中的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();? ???//如果文件不存在,則創(chuàng)建? ?? ?? ?? ?? ? }? ?? ?? ?? ?? ? fos = new FileOutputStream(file);? ?? ?? ?? ?? ? is = rs.getBinaryStream("pic");? ?? ?? ?? ?? ? int size = 0;? ?? ?? ?? ?? ?/* while(size != -1)? ?? ?? ?? ?? ? {? ?? ?? ?? ?? ?? ???size = ***.read(Buffer);? ? //從數(shù)據(jù)庫中一段一段的讀出數(shù)據(jù)? ?? ?? ?? ?? ?? ???//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? ?? ?? ?? ?{? ?? ?? ?? ?? ? //關(guān)閉用到的資源? ?? ?? ?? ?? ? 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()); ? ?? ???}? ? }}。
本文分享完畢,希望對大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!