將圖片加入mysql的方法:先將資料庫儲存圖片的欄位類型設定為blob二進位大物件類型;然後將圖片流轉換為二進位;最後將圖片插入資料庫即可。
推薦:《mysql影片教學》
#正常的圖片儲存或是放進本機磁碟,要嘛就存進資料庫。存入本地很簡單,現在我在這裡記下如何將圖片存進mysql資料庫
如果要圖片存進資料庫 要將圖片轉換成二進位。
1.資料庫儲存圖片的欄位類型要為blob二進位大物件類型
2.將圖片流轉換為二進位
下面放上程式碼實例
一、資料庫
CREATE TABLE `photo` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `photo` blob, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、資料庫連結
/** * */ package JdbcImgTest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * @author Administrator * */ public class DBUtil { // 定义数据库连接参数 public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/test"; public static final String USERNAME = "root"; public static final String PASSWORD = "root"; // 注册数据库驱动 static { try { Class.forName(DRIVER_CLASS_NAME); } catch (ClassNotFoundException e) { System.out.println("注册失败!"); e.printStackTrace(); } } // 获取连接 public static Connection getConn() throws SQLException { return DriverManager.getConnection(URL, USERNAME, PASSWORD); } // 关闭连接 public static void closeConn(Connection conn) { if (null != conn) { try { conn.close(); } catch (SQLException e) { System.out.println("关闭连接失败!"); e.printStackTrace(); } } } //测试 /* public static void main(String[] args) throws SQLException { System.out.println(DBUtil.getConn()); } */ }
三、圖片流
package JdbcImgTest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; /** * @author Administrator * */ public class ImageUtil { // 读取本地图片获取输入流 public static FileInputStream readImage(String path) throws IOException { return new FileInputStream(new File(path)); } // 读取表中图片获取输出流 public static void readBin2Image(InputStream in, String targetPath) { File file = new File(targetPath); String path = targetPath.substring(0, targetPath.lastIndexOf("/")); if (!file.exists()) { new File(path).mkdir(); } FileOutputStream fos = null; try { fos = new FileOutputStream(file); int len = 0; byte[] buf = new byte[1024]; while ((len = in.read(buf)) != -1) { fos.write(buf, 0, len); } fos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (null != fos) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
四、轉碼儲存
package JdbcImgTest; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * @author Administrator 测试写入数据库以及从数据库中读取 */ public class ImageDemo { // 将图片插入数据库 public static void readImage2DB() { String path = "D:/Eclipse/eclipseWorkspace/TestProject/Img/mogen.jpg"; Connection conn = null; PreparedStatement ps = null; FileInputStream in = null; try { in = ImageUtil.readImage(path); conn = DBUtil.getConn(); String sql = "insert into photo (id,name,photo)values(?,?,?)"; ps = conn.prepareStatement(sql); ps.setInt(1, 1); ps.setString(2, "Tom"); ps.setBinaryStream(3, in, in.available()); int count = ps.executeUpdate(); if (count > 0) { System.out.println("插入成功!"); } else { System.out.println("插入失败!"); } } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.closeConn(conn); if (null != ps) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } } } // 读取数据库中图片 public static void readDB2Image() { String targetPath = "C:/Users/Jia/Desktop/mogen.jpg"; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = DBUtil.getConn(); String sql = "select * from photo where id =?"; ps = conn.prepareStatement(sql); ps.setInt(1, 1); rs = ps.executeQuery(); while (rs.next()) { InputStream in = rs.getBinaryStream("photo"); ImageUtil.readBin2Image(in, targetPath); } } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.closeConn(conn); if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } } } //测试 public static void main(String[] args) { //readImage2DB(); readDB2Image(); } }
以上是怎麼將圖片加入mysql中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

todropaviewInmySQL,使用“ dropviewifexistsview_name;” andTomodifyAview,使用“ createOrreplaceViewViewViewview_nameAsSelect ...”。 whendroppingaview,asew dectivectenciesanduse和showcreateateviewViewview_name;“ tounderStanditSsstructure.whenModifying

mySqlViewScaneFectectialized unizedesignpatternslikeadapter,Decorator,Factory,andObserver.1)adapterPatternadaptSdataForomDifferentTablesIntoAunifiendView.2)decoratorPatternenhancateDataWithCalcalcualdCalcalculenfields.3)fieldfields.3)

查看InMysqlareBeneForsImplifyingComplexqueries,增強安全性,確保dataConsistency,andOptimizingPerformance.1)他們simimplifycomplexqueriesbleiesbyEncapsbyEnculatingThemintoreusableviews.2)viewsEnenenhancesecuritybyControllityByControllingDataAcces.3)

toCreateAsimpleViewInmySQL,USEthecReateaTeviewStatement.1)defitEtheetEtheTeViewWithCreatEaTeviewView_nameas.2)指定usethectstatementTorivedesireddata.3)usethectStatementTorivedesireddata.3)usetheviewlikeatlikeatlikeatlikeatlikeatlikeatable.views.viewssimplplifefifydataaccessandenenanceberity but consisterfort,butconserfort,consoncontorfinft

1)foralocaluser:createUser'localuser'@'@'localhost'Indidendify'securepassword'; 2)foraremoteuser:creationuser's creationuser'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Rocaluser'@'localhost'Indidendify'seceledify'Securepassword'; 2)

mysqlviewshavelimitations:1)他們不使用Supportallsqloperations,限制DatamanipulationThroughViewSwithJoinsOrsubqueries.2)他們canimpactperformance,尤其是withcomplexcomplexclexeriesorlargedatasets.3)

porthusermanagementinmysqliscialforenhancingsEcurityAndsingsmenting效率databaseoperation.1)usecReateusertoAddusers,指定connectionsourcewith@'localhost'or@'%'。

mysqldoes notimposeahardlimitontriggers,butacticalfactorsdeterminetheireffactective:1)serverConfiguration impactactStriggerGermanagement; 2)複雜的TriggerSincreaseSySystemsystem load; 3)largertablesslowtriggerperfermance; 4)highConconcConcrencerCancancancancanceTigrignecentign; 5); 5)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用