成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 往MySQL中存儲(chǔ)圖片的方法

往MySQL中存儲(chǔ)圖片的方法

熱門標(biāo)簽:電銷卡外呼系統(tǒng)供應(yīng)商 400電話可以免費(fèi)申請(qǐng)嗎 福建外呼系統(tǒng)定制化 騰訊地圖標(biāo)注提升 怎么在地圖標(biāo)注位置生成圖片 銅陵防封電銷卡 真人語音電話機(jī)器人 悟空科技電話機(jī)器人 美國反騷擾電話機(jī)器人

1 介紹

在設(shè)計(jì)到數(shù)據(jù)庫的開發(fā)中,難免要將圖片或音頻文件插入到數(shù)據(jù)庫中的情況。一般來說,我們可以同過插入圖片文件相應(yīng)的存儲(chǔ)位置,而不是文件本身,來避免直接向數(shù)據(jù)庫里插入的麻煩。但有些時(shí)候,向MySQL中插入圖片更加容易管理。那么在MySQL中該怎么存儲(chǔ)呢?

參考資料[1]中有個(gè)相當(dāng)清晰的例子,不過是基于MySQL圖形界面的查詢工具Query Brower的,你的機(jī)子上沒有安裝的話,可能得不到很好的理解。我在這里不在贅述,更詳細(xì)的資料請(qǐng)看給出的鏈接吧。

還有,[1]中的例子其實(shí)只是向我們說明了Query Brower的易用和強(qiáng)大,對(duì)我們?cè)陂_發(fā)中實(shí)際應(yīng)用不是很大。所以下面就讓我們用JAVA寫一個(gè)向MySQL中存儲(chǔ)的簡單實(shí)例。

2 建表

首先,先要在數(shù)據(jù)庫中建表。我在名為test的數(shù)據(jù)庫下建立了一個(gè)叫pic的表。該表包括3列,idpic, caption和img。其中idpic是主鍵,caption是對(duì)圖片的表述,img是圖像文件本身。建表的SQL語句如下:

DROP TABLE IF EXISTS `test`.`pic`;
CREATE TABLE `test`.`pic` (
 `idpic` int(11) NOT NULL auto_increment,
 `caption` varchar(45) NOT NULL default '',
 `img` longblob NOT NULL,
 PRIMARY KEY (`idpic`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

將上面的語句輸入到命令行中(如果安裝了Query Brower, 你可以按照參考[1]中的指示來建表,那樣會(huì)更加方便。),執(zhí)行,表建立成功。

3 實(shí)現(xiàn)圖像存儲(chǔ)類

表完成后,我們就開始寫個(gè)Java類,來完成向數(shù)據(jù)庫中插入圖片的操作。我們知道,Java與數(shù)據(jù)庫連接是通過JDBC driver來實(shí)現(xiàn)的。我用的是MySQL網(wǎng)站上提供的MySQL Connector/J,如果你用的是其他類型的driver, 在下面的實(shí)現(xiàn)過程中可能會(huì)有些許差別。

3.1 裝載JDBC驅(qū)動(dòng),建立連接

JDK中提供的DriverManager接口用來管理Java Application 和 JDBC Driver之間的連接。在使用這個(gè)接口之前, DriverManager需要知道要連接的JDBC 驅(qū)動(dòng)。最簡單的方法就是用Class.forName()來向DriverManager注冊(cè)實(shí)現(xiàn)了java.sql.Driver 的接口類。對(duì)MySQL Connector/J來說,這個(gè)類的名字叫com.mysql.jdbc.Driver。

下面這個(gè)簡單的示例說明了怎樣來注冊(cè)Connector/J Driver。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class LoadDriver {
  public static void main(String[] args) {
    try {
      // The newInstance() call is a work around for some
      // broken Java implementations
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      
      // Connection con = DriverManager.getConnection(……)
      // ……
    } catch (Exception ex) {
      // handle the error
    }
}

向DriverManager注冊(cè)了驅(qū)動(dòng)后,我們就可以通過調(diào)用 DriverManager.getConnection()方法來獲得和數(shù)據(jù)庫的連接。其實(shí)在上面的例子中就有這條語句,只不過被注釋掉了。在后面的實(shí)現(xiàn)中會(huì)有完整的例子。

3.2 PreparedStatement

完成上面的步驟后,我們就可以同過建立的連接創(chuàng)建Statement接口類,來執(zhí)行一些SQL語句了。在下面的例子,我用的是PreparedStatement,還有CallableStatement,它可以執(zhí)行一些存儲(chǔ)過程和函數(shù),這里不多講了。下面的代碼片斷是向pic表中插入一條記錄。其中(1)處Connection接口的對(duì)象con通過調(diào)用prepareStatement 方法得到預(yù)編譯的SQL 語句(precompiled SQL statement);(2)處是為該insert語句的第一個(gè)問號(hào)賦值,(3)為第二個(gè)賦值,(4)為第三個(gè),這步也是最該一提的,用的方法是setBinaryStream(),第一個(gè)參數(shù)3是指第三個(gè)問號(hào),fis是一個(gè)二進(jìn)制文件流,第三個(gè)參數(shù)是該文件流的長度。

PreparedStatement ps;
…
ps = con.prepareStatement("insert into PIC values (?,?,?)"); // (1)
ps.setInt(1, id); //(2)
ps.setString(2, file.getName()); (3)
ps.setBinaryStream(3, fis, (int)file.length()); (4)
ps.executeUpdate();
…

3.3 完整代碼

上面列出了完整的代碼。

package com.forrest.storepic;
 import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
/**
 * This class describes how to store picture file into MySQL.
 * @author Yanjiang Qian
 * @version 1.0 Jan-02-2006
 */
public class StorePictures {
  
  private String dbDriver;
  private String dbURL;
  private String dbUser;
  private String dbPassword;
  private Connection con;
  private PreparedStatement ps; 
 
  public StorePictures() {
    dbDriver = "com.mysql.jdbc.Driver";
    dbURL = "jdbc:mysql://localhost:3306/test";
    dbUser = "root";
    dbPassword = "admin";
    initDB();
  }
  
  public StorePictures(String strDriver, String strURL,
      String strUser, String strPwd) {
    dbDriver = strDriver;
    dbURL = strURL;
    dbUser = strUser;
    dbPassword = strPwd;
    initDB();
  }
 
  public void initDB() {
    try {
      // Load Driver
      Class.forName(dbDriver).newInstance();
      // Get connection
      con = DriverManager.getConnection(dbURL,
          dbUser, dbPassword);      
    } catch(ClassNotFoundException e) {
      System.out.println(e.getMessage());
    } catch(SQLException ex) {
      // handle any errors
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
 
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }
 
  public boolean storeImg(String strFile) throws Exception {
    boolean written = false;
    if (con == null)
      written = false;
    else {
      int id = 0;
      File file = new File(strFile);
      FileInputStream fis = new FileInputStream(file);
      
      try {       
        ps = con.prepareStatement("SELECT MAX(idpic) FROM PIC");
        ResultSet rs = ps.executeQuery();
        
        if(rs != null) {
          while(rs.next()) {
            id = rs.getInt(1)+1;
          }
        } else {    
          return written;
        }
        
        ps = con.prepareStatement("insert "
            + "into PIC values (?,?,?)");
        ps.setInt(1, id);
        ps.setString(2, file.getName());
        ps.setBinaryStream(3, fis, (int) file.length());
        ps.executeUpdate();
        
        written = true;
      } catch (SQLException e) {
        written = false;
        System.out.println("SQLException: "
            + e.getMessage());
        System.out.println("SQLState: "
            + e.getSQLState());
        System.out.println("VendorError: "
            + e.getErrorCode());
        e.printStackTrace();
      } finally {       
        ps.close();
        fis.close();
        // close db con
        con.close();
      }
    }
    return written;
  }
  
  /**
   * Start point of the program
   * @param args CMD line
   */
  public static void main(String[] args) {
    if(args.length != 1) {
      System.err.println("java StorePictures filename");
      System.exit(1);
    }
    boolean flag = false;
    StorePictures sp = new StorePictures();
    try {
      flag = sp.storeImg(args[0]);
    } catch (Exception e) {
      e.printStackTrace();
    }
    if(flag) {
      System.out.println("Picture uploading is successful.");
    } else {
      System.out.println("Picture uploading is failed.");
    }
  }
}

4 總結(jié)

到此,我們就介紹完了使用往MySQL保存圖片的全過程。這個(gè)例子是個(gè)最簡單的實(shí)例,讀者可以根據(jù)自己的實(shí)際需要加入其它的一些功能,比如讀取文件,刪除等,使整個(gè)程序更加完善。在寫這篇文章的時(shí)候主要參考了參考[2],在此謝過。參考[3]中是一個(gè)相當(dāng)漂亮的例子,不僅有保存還有讀取,而且是有非常直觀的圖形界面,感興趣的可以深入研究。

以上所述是小編給大家介紹的往MySQL中存儲(chǔ)圖片的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

您可能感興趣的文章:
  • MySQL存儲(chǔ)文本和圖片的方法
  • PHP操作MySQL中BLOB字段的方法示例【存儲(chǔ)文本與圖片】
  • Express實(shí)現(xiàn)前端后端通信上傳圖片之存儲(chǔ)數(shù)據(jù)庫(mysql)傻瓜式教程(二)
  • Express實(shí)現(xiàn)前端后端通信上傳圖片之存儲(chǔ)數(shù)據(jù)庫(mysql)傻瓜式教程(一)
  • 圖片存儲(chǔ)與瀏覽一例(Linux+Apache+PHP+MySQL)
  • MYSQL的存儲(chǔ)過程和函數(shù)簡單寫法

標(biāo)簽:聊城 湖北 烏海 白銀 武威 臨汾 湖南 云浮

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《往MySQL中存儲(chǔ)圖片的方法》,本文關(guān)鍵詞  往,MySQL,中,存儲(chǔ),圖片,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《往MySQL中存儲(chǔ)圖片的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于往MySQL中存儲(chǔ)圖片的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    色狠狠久久av五月综合|| 久久精品五月| 国产精品乡下勾搭老头1| 1769视频在线播放免费观看| 在线观看av日韩| 希岛爱理中文字幕| missav|免费高清av在线看| 国产精品18久久久久网站| 欧美日韩中文字幕一区二区| 日本免费看片网站| 欧美日韩精品中文字幕| 3d精品h动漫啪啪一区二区| 亚洲影院天堂中文av色| 亚洲成人av一区二区| 中文在线播放| 9lporm自拍视频区在线| 国产欧美精品aaaaaa片| 国产午夜精品一区理论片飘花| 男男h黄动漫啪啪无遮挡软件| 免费h视频网站| 亚洲成av人**亚洲成av**| 欧美老肥婆性猛交视频| 日本我和搜子同居的日子高清在线| 国产黄色小视频在线| 久久午夜羞羞影院免费观看| 日韩视频一区二区三区在线播放免费观看| 日本毛片在线观看| 爱草tv视频在线观看992| 国产欧美日韩另类视频免费观看| 中文字幕精品一区久久久久| 粉嫩蜜臀av国产精品网站| 一级二级三级视频| 国产精品视频资源| 福利一区二区三区视频在线观看| 二个人看的毛片| 成人免费视频免费观看| eeuss影院130020部| 免费网站观看www在线观| 亚洲区欧美区| av免费观看不卡| 婷婷亚洲天堂| 国产精品美女久久久久久免费| 国产亚洲欧美在线精品| 黄色资源在线看| 国产日韩在线看片| 91精品国产欧美一区二区| 中文在线8资源库| 呦呦视频在线观看| 欧美日本另类xxx乱大交| 成人伊人222| jlzzjlzz国产精品久久| 在线日韩一区二区| 最新亚洲国产精品| xxxx性bbbb欧美野外| 日韩精品导航| 婷婷综合在线视频| 大乳在线免费观看| 亚洲人体一区| 日韩欧美在线看| 亚洲www啪成人一区二区麻豆| 久草在线资源视频| 久久99精品国产.久久久久久| 国产精品欧美激情在线观看| av电影在线观看完整版一区二区| 午夜精彩国产免费不卡不顿大片| 亚洲瘦老头同性70tv| 国内自拍一区| av网站有哪些| 日本黄色一区二区三区| 欧美日韩国产第一页| www亚洲一区| 俺去啦俺在线观看| 男人插女人视频在线观看| 国产精品视频在线观看免费| 国产日韩精品一区二区| 欧美精品观看| 日日摸夜夜添夜夜添亚洲女人| 欧美精品一区二区三区涩爱蜜| 久久亚洲精品视频| 欧美一卡二卡| 日韩在线视频第一页| 久久久在线视频| 2222www色视频在线观看| 国产色播av在线| 亚洲色图影院| 久久亚洲欧美| 双性尿奴穿贞c带憋尿| 成人毛片18女人毛片| 99久久婷婷国产一区二区三区| 中文字幕国产高清| 狠狠干夜夜操| 8x海外华人永久免费日韩内陆视频| 99久久免费精品国产72精品九九| 天天夜碰日日摸日日澡性色av| 国产在视频一区二区三区吞精| 成人午夜激情在线| 亚洲成人午夜电影| 久久精品亚洲麻豆av一区二区| 成人国内精品久久久久一区| 亚洲欧美综合区自拍另类| 亚洲成人av在线影院| 亚洲风情在线资源站| 欧美性猛交xxx高清大费中文| 亚洲色偷偷综合亚洲av伊人| 亚洲电影免费| 波多野结衣久久高清免费| 欧美亚一区二区三区| 91精品国产欧美一区二区| 5566日本婷婷色中文字幕97| 日韩专区在线视频| 国产精品一区二区视频| 欧美人妇做爰xxxⅹ性高电影| 激情视频一区二区三区| h视频在线网站| 欧美激情综合亚洲一二区| 日本国产在线观看| 伊人一区二区三区久久精品| 91久久久久久国产精品| 久久久久久久久久一区二区| 国产又大又黄又粗| 一线天自拍视频| 亚洲精品久久一区二区三区777| 1024在线播放| 国产叼嘿视频在线观看| 在线播放/欧美激情| 成人福利网站在线观看| 欧美性猛交xxxx乱大交极品| 欧美一级电影免费在线观看| 男人天堂2017| 亚洲一卡二卡在线观看| 日韩啪啪网站| 成人国产精品日本在线| 欧美视频在线观看免费网址| 日韩一级毛片| 日韩大片在线观看| 老司机凹凸av亚洲导航| 成+人+亚洲+综合天堂| 亚洲天堂aaa| 日本在线人成| 91精品国产三级| 中文字幕资源网在线观看| 免费观看黄色的网站| 国产一区二区三区在线免费| 国产欧美综合色| 亚洲免费视频一区| 亚洲综合第一区| 久久久久久久麻豆| 国产精品久久AV无码| 亚洲视频精选| 欧美区一区二| 欧美两根一起进3p做受视频| 国产成人无码一区二区三区在线| 国产一区二区三区在线免费| 久久av免费看| 亚洲伊人影院| 国产日韩在线亚洲字幕中文| 国产精品视频在线播放| 日本电影全部在线观看网站视频| 欧美亚洲视频在线观看| 欧美视频小说| 久久夜色精品国产噜噜亚洲av| 久久久久久久久久久久久久一区| 精品亚洲成a人| 疯狂撞击丝袜人妻| 伊人久久大香线蕉综合影院首页| 超碰在线免费97| 高清一区二区三区四区五区| 中文字幕巨乱亚洲| 2019中文字幕全在线观看| 国产裸体写真av一区二区| vam成人资源在线观看| 亚洲第一二三四区| 欧美人体做爰大胆视频| 国产一二三四区在线| 国产91对白在线观看九色| 99re8这里有精品热视频免费| 欧美成人国产va精品日本一级| 久久99精品久久久久久青青日本| 色综合伊人色综合网| 色天堂在线视频| 99国产精品欲| 国产一级免费大片| 欧美一级专区免费大片| 我不卡影院28| 国产精品亚洲第一区在线暖暖韩国| 岛国av一区二区在线在线观看| 狠狠躁天天躁日日躁欧美| 好吊操视频这里只有精品| 亚洲精品一级| 欧美日韩激情视频8区| 国产精品精品视频| 欧美黄色一区二区| 美女久久久久久久久| 日本人妖一区二区| 国产精品日韩成人| 五月天丁香社区| 美女污污网站| 午夜高潮免费视频| 欧美日韩亚洲视频| 日韩精品一区二区视频| 18欧美乱大交hd1984| 国产99久久九九精品无码免费| 国产一区二区久久| 国产最新自拍视频| 精品国产福利视频| 亚洲欧美三级伦理| 日本视频一区二区三区| 国产成人无码精品亚洲| 51精品久久久久久久蜜臀| 亚洲精品在线免费观看视频| 久久无码人妻精品一区二区三区| 免费播放av| 超碰成人97| 老熟妇精品一区二区三区| 亚洲最大成人在线观看| 美丽的小蜜桃4春潮| 精品中文字幕在线观看| 一区二区视频免费完整版观看| 亚洲va天堂va欧美ⅴa在线| www.aqdy爱情电影网| 日韩小视频网站| 亚洲人精品一区| 精品无码久久久久久国产| 免费a级人成a大片在线观看| 亚洲三级在线播放| 日韩精品免费一线在线观看| 欧美日韩在线视频播放| 中国免费黄视频| 欧美成人综合网站| 免费观看h片| 国产精品久久一区主播| 欧美精品一区二区在线播放| 一二三级黄色片| 97在线免费公开视频| 日韩精品看片| 三级网站在线免费观看| 久久国产乱子伦免费精品| 国产白丝在线观看| 亚洲二区中文字幕| 亚洲网站在线观看| 国产精品美女在线观看| 在线播放精品视频| 日本不卡二三区| 四虎国产成人永久精品免费| 欧美不卡高清一区二区三区| 中文字幕一区二区三区乱码不卡| 欧美亚洲一区在线| h视频免费观看| 久久久亚洲欧洲日产国码aⅴ| 激情亚洲综合网| 成人av免费在线观看| 羞羞影视羞羞在线| 国产精品99无码一区二区| 国产精品黄色片| 91在线|亚洲| 国产国语性生话播放| 日本一区二区三区dvd视频在线| 女同性一区二区三区人了人一| 欧美美女被草| 色呦呦在线播放| 中文字幕日产av一二三区| 国产精品波多野结衣| 午夜精品福利一区二区| 稀缺呦国内精品呦| 日韩成人免费视频| 中日韩高清电影网| av福利在线| 91精品久久久久久久久青青| h片在线播放| 美女在线一区二区| 中文字幕第80页| 一出一进一爽一粗一大视频| 天堂√中文在线| 国产亚洲精品中文字幕| 国产精品青青在线观看爽香蕉| 日韩精品亚洲一区二区三区免费| 中文字幕日韩综合av| 久久亚洲一区二区三区四区五区高| 日本va欧美va精品发布| 精品国产99久久久久久| 国产精品成久久久久三级| 国产男女猛烈无遮挡a片漫画| 怡红院怡春院首页| 成人性爱视频在线观看| 成人免费91在线看| 欧美裸身视频免费观看| 亚洲桃色综合影院| 一区二区三区日韩视频| 韩国理伦片久久电影网| 欧美bbbbb性bbbbb视频| 特级全黄一级毛片| 亲爱的老师6电影韩剧| 91久久久国产精品| 国产丝袜精品第一页| 精品国产91乱高清在线观看| 久久久久免费精品国产| 在线观看视频你懂得| 高清久久久久久| 一区二区三区www污污污网站| 精品国产一区二区三区噜噜噜| 亚洲天堂男人天堂女人天堂| 综合中文字幕亚洲| 欧美中文字幕在线播放| 国产精品裸体瑜伽视频| 精品对白一区国产伦| 鲁一鲁一鲁一鲁一色| 中文字幕一区二区中文字幕| 91好色先生tv| 国产女人被狂躁到高潮小说| 精品日韩毛片| 亚洲摸下面视频| 成人午夜高潮视频| 久久国产色av| 国产欧美日韩麻豆91| 99视频一区| 欧美成va人片在线观看| 精品丝袜一区二区三区| 天天色av.com| 精品一区精品二区| 电影亚洲精品噜噜在线观看| а天堂中文在线资源| 亚洲AV第二区国产精品| 久久天天躁狠狠躁夜夜爽蜜月| 97视频在线观看成人| 一区二区在线中文字幕电影视频| 午夜天堂精品久久久久| 亚洲国产岛国毛片在线| 69av视频在线观看|