亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Mysql數(shù)據(jù)庫中存取圖片的Java實現(xiàn)

        2013-09-12 04:24:52周建儒
        電子測試 2013年20期
        關(guān)鍵詞:數(shù)據(jù)庫

        周建儒

        (四川信息職業(yè)技術(shù)學院信息工程系,廣元,628040)

        圖片存儲有兩種方式:一種是將圖片單獨存放在固定文件夾里,數(shù)據(jù)庫表中對應(yīng)的字段僅保存該圖片的路徑和名字;這種方式實現(xiàn)簡單,數(shù)據(jù)表中無大數(shù)據(jù),訪問速度快,但是不安全,數(shù)據(jù)維護不方便。另一種是先對圖片進行編碼,再將編碼后的數(shù)據(jù)寫到數(shù)據(jù)庫表中,需要時再從數(shù)據(jù)庫表中讀出,然后解碼生成圖片文件;這種方式比較安全,數(shù)據(jù)維護方便靈活。本文針對這兩種方式,用程序?qū)嵗M行分析和比較。

        1 Mysql數(shù)據(jù)庫

        MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),體積小,速度快,開放源碼。Mysql支持存儲二進制文件的BLOB字段類型;BLOB是個類型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,它們可容納的最大字節(jié)數(shù)分別是255B,65K,16M,4G。

        2 預編譯語句

        預編譯語句PreparedStatement是java.sql的一個接口,也是Statement的子接口。通過Statement對象執(zhí)行SQL語句時,需要將SQL語句發(fā)送給DBMS進行編譯后再執(zhí)行。而預編譯語句是在創(chuàng)建PreparedStatement 對象時就指定了SQL語句,并發(fā)送給DBMS進行編譯,當該編譯語句被執(zhí)行時,DBMS直接運行編譯后的SQL語句,而不需要像其它SQL語句那樣先進行編譯。

        預編譯語句可以提高訪問數(shù)據(jù)庫的性能,數(shù)據(jù)庫在處理SQL語句時都有一個預編譯的過程,而預編譯對象就是把一些格式固定的SQL語句編譯后存放在數(shù)據(jù)庫緩沖池中。當需要再次執(zhí)行相同的SQL語句時就不再進行編譯了,直接由DBMS運行SQL語句。所以當需要多次執(zhí)行Statement對象的時候,使用PreparedStatement對象可以大大降低運行時間,特別是大型數(shù)據(jù)庫,它可以有效地提高訪問數(shù)據(jù)庫的速度。

        3 在Mysql數(shù)據(jù)庫中存取圖片的方法

        3.1 以二進制格式存取圖片

        3.1.1 以二進制格式將圖片寫入photo表中

        3.1.2 從photo表中讀出圖片數(shù)據(jù),并生成圖片文件

        3.2 以Base64編碼格式存取圖片

        Base64是一種基于64個可打印字符來表示二進制數(shù)據(jù)的表示方法。Base64編碼的基本原理是:將字符串按每3個8位(3*8=24bit)字節(jié)分為一組,把每個字符的ASCII碼轉(zhuǎn)換成8位二進制數(shù),就是一組24位的字節(jié),再把這24位分為4個6位(4*6=24bit)字節(jié),并在每個6位的高位添加兩個0,得到4個8位的字節(jié),然后將這4個8位的字節(jié)轉(zhuǎn)換成十進制數(shù),然后對照Base64編碼表得到對應(yīng)的編碼字符。

        3.2.1 先對圖片進行Base64編碼,再將其寫入photo表中

        3.2.2 從photo表中讀出圖片文件的base64編碼,解碼后重新生成圖片文件

        4 總結(jié)

        用以上兩種方法在Mysql數(shù)據(jù)庫表中存儲同一個jpg格式的圖片,以二進制數(shù)據(jù)格式存儲占用了2562個字節(jié),以Base64編碼格式存儲占用了3504個字節(jié)??梢?,Base64編碼后的圖片數(shù)據(jù)增大,這是因為Base64編碼的數(shù)據(jù)冗余比較多,編碼后的數(shù)據(jù)長度是編碼前長度的三分之四倍。把圖片文件用base64編碼后再存入數(shù)據(jù)庫,會增大存儲空間,延長圖片訪問時間,減慢系統(tǒng)的響應(yīng)速度。Base64編碼可用于HTTP環(huán)境下傳遞較長的標識信息。例如:在Hibernate中就把UUID編碼為一個字符串,用作HTTP表單和HTTPGETURL中的參數(shù)。

        [1]Y.Daniel Liang,Java語言程序設(shè)計基礎(chǔ)篇[M].北京:機械工業(yè)出版社,2009.

        [2]Paul DuBois,MySQL技術(shù)內(nèi)幕(第4版)[M].北京:人民郵電出版社,2011.

        [3]尹繼平,Java范例大全[M].北京:機械工業(yè)出版社,2009.[4]劉書倫,Java程序設(shè)計[M].北京:國防科技大學出版社,2011.

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2015年3期)2015-06-09 17:41:31
        數(shù)據(jù)庫
        財經(jīng)(2014年21期)2014-08-18 01:50:18
        數(shù)據(jù)庫
        財經(jīng)(2014年6期)2014-03-12 08:28:19
        數(shù)據(jù)庫
        財經(jīng)(2013年6期)2013-04-29 17:59:30
        新婚少妇无套内谢国语播放| 麻豆人妻性色av专区0000| 日韩中文字幕有码午夜美女| 中文字日产幕码三区的做法大全| 国产成人精品久久一区二区三区 | 亚洲免费不卡av网站| 91快射视频在线观看| 亚洲精品一区二区三区麻豆| 亚洲国产精品无码中文字| 免费a级作爱片免费观看美国| 双腿张开被9个黑人调教影片| 国产在线观看精品一区二区三区| 日韩人妻久久中文字幕| 国产精品日日做人人爱| av无码av天天av天天爽| 欧美精品人人做人人爱视频| 成人动漫久久| 久久久久综合一本久道| 亚洲成在人线天堂网站| 美国少妇性xxxx另类| 国偷自产视频一区二区久| 自拍欧美日韩| 亚洲国产成人精品久久成人| 最新中文字幕一区二区| 亚洲精品国偷拍自产在线麻豆| 最新亚洲人AV日韩一区二区| 日本精品啪啪一区二区| 伊人久久大香线蕉av波多野结衣| 色综合久久88色综合天天| 2021久久最新国产精品| 亚洲中文字幕诱惑第一页| 一二三四五区av蜜桃| 97夜夜澡人人爽人人喊中国片| 国产一区二区三区四区五区vm| 一区二区三区四区亚洲综合| av免费不卡一区二区| 亚洲精品国产一区二区| 亚洲级αv无码毛片久久精品 | 免费美女黄网站久久久| 男女男精品视频网站免费看| 在线精品一区二区三区|