新聞中心
隨著人們生活水平的提高和科技的快速發(fā)展,現(xiàn)在拍攝和存儲照片已經(jīng)變得更加方便和普遍,但是隨之而來的一個問題是如何對這些照片進行管理和儲存。針對這一問題,本文將介紹如何使用Java將照片添加至數(shù)據(jù)庫,并提供詳細的實現(xiàn)步驟。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比西工網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式西工網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋西工地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
一、數(shù)據(jù)庫配置
我們需要新建一個數(shù)據(jù)庫并進行配置??梢赃x擇MySQL數(shù)據(jù)庫,在此不再贅述如何新建數(shù)據(jù)庫和配置,如果需要學習可以參考相關教程。接下來,我們需要創(chuàng)建一個表來存儲照片數(shù)據(jù),可以根據(jù)下面的SQL語句進行創(chuàng)建:
“`sql
CREATE TABLE `photo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`content` longblob,
PRIMARY KEY (`id`)
);
“`
該表共有三個字段:id為自增的主鍵,name為圖片名稱,content為二進制數(shù)據(jù)的圖像內(nèi)容。
二、引用相關jar包
在Java中,我們需要引用Java開發(fā)包來實現(xiàn)圖片和數(shù)據(jù)庫的交互。以下是需要引用的jar包:
– mysql-connector-java.jar
– commons-fileupload-1.4.jar
– commons-io-2.9.0.jar
三、編寫Java代碼
在Java代碼中,我們需要完成以下幾個步驟:
1.連接數(shù)據(jù)庫,并創(chuàng)建preparedStatement對象
2.設置SQL語句并將參數(shù)預處理
3.通過Commons-FileUpload插件獲取上傳文件的MultipartFile
4.將MultipartFile轉換成byte[]類型,并將byte[]類型的數(shù)據(jù)插入到數(shù)據(jù)庫中
下面是完整的Java代碼實現(xiàn):
“`java
package com.example.photo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
@Controller
public class PhotoController {
@Autowired
private JdbcTemplate jdbcTemplate;
@RequestMapping(“/addPhoto”)
@ResponseBody
public String addPhoto(HttpServletRequest request, @RequestParam MultipartFile photo) throws IOException {
String name = photo.getOriginalFilename();
InputStream content = photo.getInputStream();
String sql = “INSERT INTO photo (name, content) VALUES (?, ?)”;
try {
PreparedStatement preparedStatement = jdbcTemplate.getDataSource().getConnection().prepareStatement(sql);
preparedStatement.setString(1, name);
byte[] bytes = readBytes(content);
preparedStatement.setBytes(2, bytes);
preparedStatement.executeUpdate();
preparedStatement.close();
return “upload success”;
} catch (SQLException e) {
e.printStackTrace();
return “upload fl”;
}
}
private byte[] readBytes(InputStream inputStream) throws IOException {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
byte[] byteStore = new byte[1024 * 1024];
int len = 0;
while ((len = inputStream.read(byteStore)) != -1) {
byteStream.write(byteStore, 0, len);
}
return byteStream.toByteArray();
}
}
“`
四、測試功能
以上就是將照片添加到數(shù)據(jù)庫的全部過程,我們啟動Spring Boot應用程序,訪問/uploadurl/upload即可上傳照片至數(shù)據(jù)庫。上傳方式為POST請求,使用postman或者表單方式均可訪問。
至此,我們已經(jīng)成功地實現(xiàn)了將照片添加至數(shù)據(jù)庫的功能。本文介紹的方法同樣適用于圖片或者文件批量插入數(shù)據(jù)庫中,希望能對大家有所幫助。
相關問題拓展閱讀:
- 用Java能不能把一張圖片存到MySQL數(shù)據(jù)庫中啊
用Java能不能把一張圖片存到MySQL數(shù)據(jù)庫中啊
MySQL 不是文本類數(shù)據(jù)存儲,不能直接存儲圖片和文件。
可以,用BLOB,但是不推薦這么做,保存路徑比較好
數(shù)據(jù)庫中使用blob字段。 不過建議還是存儲圖片路徑吧,數(shù)據(jù)庫的輸出流慢的多
java添加照片到數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于java添加照片到數(shù)據(jù)庫,使用Java將照片添加至數(shù)據(jù)庫:實現(xiàn)步驟詳解,用Java能不能把一張圖片存到MySQL數(shù)據(jù)庫中啊的信息別忘了在本站進行查找喔。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
網(wǎng)頁題目:使用Java將照片添加至數(shù)據(jù)庫:實現(xiàn)步驟詳解(java添加照片到數(shù)據(jù)庫)
文章起源:http://www.dlmjj.cn/article/cdohidc.html


咨詢
建站咨詢
