這篇文章將為大家詳細講解有關怎么基于java向MySQL數據庫中存取圖片,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
網站建設公司,為您提供網站建設,網站制作,網頁設計及定制網站建設服務,專注于成都企業網站定制,高端網頁制作,對成都不銹鋼雕塑等多個行業擁有豐富的網站建設經驗的網站建設公司。專業網站設計,網站優化推廣哪家好,專業成都網站推廣優化,H5建站,響應式網站。
學mysql的時候都是做個表格,放的也都是文字內容,雖然我知道長篇的文章和圖片或者視頻的都是用過文件夾的方式存儲的,再講文件路徑存進數據庫中。但還是想試試直接往mysql數據庫中存取圖片。這里我用的是java語言和jdbc實現的
mysql數據庫中有一個類型是Blob類型,這是一個二進制類型,通常我們會將圖片或音像文件轉成二進制再存入數據庫中,Blob分為以下幾種:
TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G
除了jdbc的連接以外,我們需要用到文件的輸入、輸出流。實現兩個方法,一個方法向數據庫中存圖像,另一個方法從數據庫中讀取圖像并存在電腦本地
import java.io.*; import java.sql.*; import java.sql.DriverManager; import java.sql.ResultSet;import java.sql.SQLException; import java.util.Scanner; public class Database { //JDBC驅動名 String JDBC_DRIVER = "com.mysql.jdbc.Driver"; //數據庫URL:這里的tt是數據庫名稱 String JDBC_URL = "jdbc:mysql://localhost:3306/daImage?useSSL=false&serverTimezone=UTC"; // 數據庫的用戶名與密碼 String USER = "root"; String PASS = "admin123"; //通過DriverManager類獲得該連接對象才能訪問數據庫 Connection connection = null; // 通過Connection獲得該結果對象用于執行靜態的SQL語句// Statement statement = null; PreparedStatement preparedStatement = null; String path; FileInputStream fileInputStream; Database() {// 注冊JDBC驅動 try { Class.forName(JDBC_DRIVER);// 數據庫的連接:通過DriverManager類的getConnection方法,傳入三個參數:數據庫URL、用戶名、用戶密碼,實例化connection對象 connection = DriverManager.getConnection(JDBC_URL, USER, PASS); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public void add(){ // 定義數據庫查詢語句:查詢aa表中的name、sex兩列數據 String sql = "insert into taImage values(?,?,?) ";// 讀取圖片,圖片放在電腦本地,所以我這里手動復制了路徑 File file = new File("/Users/liuliu/Desktop/vv.jpeg"); try { FileInputStream fi = new FileInputStream(file); preparedStatement = connection.prepareStatement(sql); preparedStatement.setInt(1, 2); preparedStatement.setString(2, "圖片一"); preparedStatement.setBlob(3, fi);// 執行查詢語句 int f = preparedStatement.executeUpdate(); if (f > 0) { System.out.println("插入成功"); } else { System.out.println("插入失敗"); } preparedStatement.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } public void select() { Blob get_image; String sql = "select* from taImage"; try {// 將讀取到的圖片存放到指定的路徑中 FileOutputStream fileOutputStream = new FileOutputStream("/Users/liuliu/Desktop/bb.jpg"); preparedStatement = connection.prepareStatement(sql); ResultSet resultSet = preparedStatement.executeQuery(); while (resultSet.next()) { get_image = resultSet.getBlob("photo");// 將讀取到的Blob對象轉成字節流 inputStream = get_image.getBinaryStream(); int a; byte b[] = new byte[1014]; while ((a = inputStream.read(b)) != -1) { fileOutputStream.write(b, 0, a); } } } catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
關于“怎么基于java向mysql數據庫中存取圖片”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章標題:怎么基于java向mysql數據庫中存取圖片
網址分享:http://vcdvsql.cn/article36/gdggsg.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、網站設計、標簽優化、軟件開發、App開發、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯