新聞中心
隨著互聯(lián)網(wǎng)的不斷發(fā)展,圖片已經(jīng)成為了網(wǎng)頁設(shè)計的不可或缺的一部分。為了讓網(wǎng)站更具吸引力,網(wǎng)頁中常常會使用大量的圖片。當(dāng)我們需要在頁面中展示一些動態(tài)的圖片時,我們可能會需要從數(shù)據(jù)庫中提取這些圖片。在本文中,我們將介紹如何。

成都創(chuàng)新互聯(lián)公司是一家網(wǎng)站建設(shè)、網(wǎng)站制作,提供網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,建網(wǎng)站,按需求定制設(shè)計,網(wǎng)站開發(fā)公司,2013年至今是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價值為核心業(yè)務(wù),全程參與項目的網(wǎng)站策劃設(shè)計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。
一、什么是P
P是Java Server Pages的縮寫,是JavaEE中的一種動態(tài)網(wǎng)頁設(shè)計技術(shù),它使用Java編程語言進行服務(wù)器端編程,可以在HTML網(wǎng)頁中插入Java代碼,實現(xiàn)網(wǎng)頁內(nèi)容的動態(tài)生成和交互。P能夠和JavaBeans、Servlet、TL等一起使用,實現(xiàn)更加完整的Web應(yīng)用程序。
二、將圖片存儲在數(shù)據(jù)庫中
通常情況下,我們可以將圖片存儲在服務(wù)器的文件系統(tǒng)中,這樣就可以通過圖片的URL地址在網(wǎng)頁中進行調(diào)用。但是,如果我們需要將圖片與其他數(shù)據(jù)表格一起存儲,并且需要在行內(nèi)展示圖片,那么將圖片存儲在數(shù)據(jù)庫中可能會更加方便。
在將圖片存儲在數(shù)據(jù)庫中之前,我們需要先創(chuàng)建一個具備存儲圖片的表格,并在表格中創(chuàng)建一個BLOB類型的字段。在向該表格中插入數(shù)據(jù)時,我們需要使用二進制數(shù)據(jù)流的方式將圖片數(shù)據(jù)插入到該字段中。
三、從數(shù)據(jù)庫中提取圖片
我們可以,具體的實現(xiàn)方式如下:
1.從數(shù)據(jù)庫中獲取圖片數(shù)據(jù)
我們可以通過SQL查詢語句從數(shù)據(jù)庫中獲取圖片數(shù)據(jù)。通常情況下,我們需要使用ResultSet類型的變量來獲取查詢結(jié)果集。當(dāng)我們執(zhí)行查詢語句后,ResultSet保存了查詢結(jié)果。
try {
//加載數(shù)據(jù)庫驅(qū)動程序
Class.forName(“com.mysql.jdbc.Driver”);
//建立連接
Connection conn = DriverManager.getConnection(url, user, password);
//創(chuàng)建Statement對象
Statement stmt = conn.createStatement();
//執(zhí)行查詢語句
String sql = “select image from images where id=1”;
ResultSet rs = stmt.executeQuery(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
2.獲取圖片數(shù)據(jù)并將其展示在網(wǎng)頁上
在獲取ResultSet后,我們可以通過getBinaryStream()方法獲取圖片的二進制流數(shù)據(jù)。我們可以使用Java IO類庫中的BufferedInputStream來對二進制數(shù)據(jù)進行讀取和處理。在完成處理后,我們可以將圖片數(shù)據(jù)輸出到網(wǎng)頁上。
try {
//獲取結(jié)果集中的二進制數(shù)據(jù)
InputStream in = rs.getBinaryStream(1);
//使用BufferedInputStream進行數(shù)據(jù)讀取和處理
BufferedInputStream bin = new BufferedInputStream(in);
int buffer = 0;
//創(chuàng)建outputStream對象用于輸出圖片數(shù)據(jù)
OutputStream out = response.getOutputStream();
//循環(huán)讀取二進制數(shù)據(jù)
while ((buffer = bin.read()) != -1) {
//將二進制數(shù)據(jù)寫入到輸出流
out.write(buffer);
}
//釋放資源
bin.close();
in.close();
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
四、
通過本文的介紹,我們了解了如何數(shù)據(jù)。我們可以通過將圖片存儲在數(shù)據(jù)庫中的方式來更好地管理圖片和其他相關(guān)數(shù)據(jù)。當(dāng)我們需要在Web應(yīng)用程序中展示圖片時,通過本文介紹的方法,我們可以快速地從數(shù)據(jù)庫中提取并展示圖片數(shù)據(jù)。
相關(guān)問題拓展閱讀:
- java提取數(shù)據(jù)庫中blob類型的圖片,如何全部顯示在jsp頁面?
java提取數(shù)據(jù)庫中blob類型的圖片,如何全部顯示在jsp頁面?
在下載圖片之前,查詢數(shù)據(jù)庫中所有圖片的主鍵。在前臺遍歷返回結(jié)果并用js動態(tài)生成img標(biāo)簽。
在差族螞OracleQueryBean類中增加一個函數(shù),來進行讀取,具體代碼如下:
/**
* 根據(jù)圖片在數(shù)據(jù)庫中的ID進行讀取
* @param strID 圖片字段ID
* @param w 需要縮到的寬度
* @param h 需要縮到高度
* @return
*/
public byte GetImgByteById(String strID, int w, int h){
//System.out.println(“Get img data which id is ” + nID);
if(myConnection == null)
this.getConnection();
byte data = null;
try {
Statement stmt = myConnection.createStatement();
ResultSet myResultSet = stmt.executeQuery(“穗轎select ” + this.strIDName + ” from ” + this.strTabName + ” where ” + this.strIDName + “=” + strID);
StringBuffer myStringBuffer = new StringBuffer();
if (myResultSet.next()) {
java.sql.Blob blob = myResultSet.getBlob(this.strImgName);
InputStream inStream = blob.getBinaryStream();
try {
long nLen = blob.length();
int nSize = (int) nLen;
//System.out.println(“img data size is :” + nSize);
data = new byte;
inStream.read(data);
inStream.close();
} catch (IOException e) {
System.out.println(“獲取圖片數(shù)據(jù)失敗,原因:” + e.getMessage());
}
data = ChangeImgSize(data, w, h);
}
System.out.println(myStringBuffer.toString());
myConnection.commit();
myConnection.close();
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return data;
}
關(guān)于jsp數(shù)據(jù)庫提取圖片代碼的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
新聞名稱:使用P代碼從數(shù)據(jù)庫中提取圖片(jsp數(shù)據(jù)庫提取圖片代碼)
本文網(wǎng)址:http://fisionsoft.com.cn/article/cogpodj.html


咨詢
建站咨詢
