摘要:知識點(diǎn)總結(jié)二進(jìn)制對象的使用知識點(diǎn)總結(jié)用于存儲(chǔ)大量的二進(jìn)制數(shù)據(jù)大字段有些特殊,不同數(shù)據(jù)庫處理的方式不一樣,大字段的操作常常是以流的方式來處理的。最大長度為,字節(jié)的列。二進(jìn)制對象的使用插入一張圖片,并讀取出來存讀
Java知識點(diǎn)總結(jié)(JDBC-二進(jìn)制對象的使用)
@(Java知識點(diǎn)總結(jié))[Java, JDBC]
BLOB(Binary Large Object)用于存儲(chǔ)大量的二進(jìn)制數(shù)據(jù)
大字段有些特殊,不同數(shù)據(jù)庫處理的方式不一樣,大字段的操作常常是以流的方式來處理的。而非一般的字段,一次即可讀出數(shù)據(jù)。
Mysql中相關(guān)類型 :TINYBLOB最大長度為255(2^[8]-1)字節(jié)的BLOB列。
BLOB[(M)]最大長度為65,535(2^[24]-1)字節(jié)的BLOB列。
MEDIUMBLOB最大長度為16,777,215(2^[24]-1)字節(jié)的BLOB列。
LONGBLOB最大長度為4,294,967,295或4GB[2^[32]-1]字節(jié)的BLOB列。
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Blob; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 二進(jìn)制對象的使用 * 插入一張圖片,并讀取出來 * @author Administrator * */ public class Demo03 { //存 private static void insert(Connection conn) { String sql = "insert into users(NAME,IMG) values(?,?)"; PreparedStatement ps = null; try { ps = conn.prepareStatement(sql); ps.setString(1, "baby"); ps.setBlob(2, new FileInputStream("E:/a.jpg")); ps.execute(); } catch (SQLException | FileNotFoundException e) { e.printStackTrace(); } finally { DBUtil. close(ps); DBUtil. close(conn); } } // 讀 private static void read(Connection conn) { String sql = "select * from users where USERID = ?"; PreparedStatement ps = null; ResultSet rs = null; InputStream is = null; FileOutputStream fos = null; try { ps = conn.prepareStatement(sql); ps.setObject(1, 14); rs = ps.executeQuery(); while (rs.next()) { Blob b = rs.getBlob("IMG"); is = b.getBinaryStream(); fos = new FileOutputStream("E:/b.jpg"); int temp = 0; while ((temp = is.read()) != -1) { fos.write(temp); } } } catch (SQLException | IOException e) { e.printStackTrace(); } finally { try { if(is !=null){ is.close(); } } catch (IOException e) { e.printStackTrace(); } try { if(fos != null){ fos.close(); } } catch (IOException e) { e.printStackTrace(); } DBUtil. close(rs); DBUtil. close(ps); DBUtil. close(conn); } } public static void main(String[] args) { insert(DBUtil.getConn()); read(DBUtil.getConn()); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71458.html
摘要:前言由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時(shí)間才會(huì)更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號:Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡單 注解就這么簡單 Druid數(shù)據(jù)庫連接池...
摘要:知識點(diǎn)總結(jié)概要知識點(diǎn)總結(jié)簡介為開發(fā)者使用數(shù)據(jù)庫提供了統(tǒng)一的編程接口,它由一組類和接口組成主要在包中。跟蹤可用的驅(qū)動(dòng)程序,并在數(shù)據(jù)庫和相應(yīng)的驅(qū)動(dòng)程序之間建立連接。接口與特定數(shù)據(jù)庫的連接會(huì)話,在連接上下文中執(zhí)行語句并返回結(jié)果。 Java知識點(diǎn)總結(jié)(JDBC-概要) @(Java知識點(diǎn)總結(jié))[Java, JDBC] 簡介 JDBC(Java Database Connection)為Java...
摘要:從使用到原理學(xué)習(xí)線程池關(guān)于線程池的使用,及原理分析分析角度新穎面向切面編程的基本用法基于注解的實(shí)現(xiàn)在軟件開發(fā)中,分散于應(yīng)用中多出的功能被稱為橫切關(guān)注點(diǎn)如事務(wù)安全緩存等。 Java 程序媛手把手教你設(shè)計(jì)模式中的撩妹神技 -- 上篇 遇一人白首,擇一城終老,是多么美好的人生境界,她和他歷經(jīng)風(fēng)雨慢慢變老,回首走過的點(diǎn)點(diǎn)滴滴,依然清楚的記得當(dāng)初愛情萌芽的模樣…… Java 進(jìn)階面試問題列表 -...
閱讀 3618·2021-09-27 14:02
閱讀 1769·2019-08-30 15:56
閱讀 1737·2019-08-29 18:44
閱讀 3269·2019-08-29 17:21
閱讀 477·2019-08-26 17:15
閱讀 1169·2019-08-26 13:57
閱讀 1234·2019-08-26 13:56
閱讀 2874·2019-08-26 11:30