日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java如何儲存二進(jìn)制流于數(shù)據(jù)庫?(java如何將二進(jìn)制的流保存到數(shù)據(jù)庫)

在實(shí)際開發(fā)中,我們有時需要將二進(jìn)制流存儲到數(shù)據(jù)庫中,例如將圖片、視頻等文件儲存到數(shù)據(jù)庫中。Java提供了多種儲存二進(jìn)制流的方式,下面將介紹如何利用Java進(jìn)行二進(jìn)制流儲存于數(shù)據(jù)庫中的操作。

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁制作,對服務(wù)器租用等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)營銷推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。

1.利用JDBC API儲存二進(jìn)制流

JDBC API提供了儲存二進(jìn)制流的方法,可以通過執(zhí)行SQL語句完成二進(jìn)制流的儲存操作。

以下是Java通過JDBC API儲存二進(jìn)制流的樣例代碼:

“`java

try{

String url = “jdbc:mysql://localhost:3306/test”;

String user = “root”;

String password = “blog”;

Connection connection = DriverManager.getConnection(url, user, password);

String sql = “INSERT INTO image(id, data) VALUES(?, ?)”;

PreparedStatement statement = connection.prepareStatement(sql);

statement.setInt(1, 1);

File file = new File(“test.png”);

FileInputStream inputStream = new FileInputStream(file);

statement.setBinaryStream(2, inputStream, inputStream.avlable());

int result = statement.executeUpdate();

System.out.println(result);

statement.close();

connection.close();

}catch(Exception e){

e.printStackTrace();

}

“`

在該樣例中,我們先創(chuàng)建了一個新的數(shù)據(jù)連接`connection`,然后用`PreparedStatement`對象來執(zhí)行插入語句。在插入語句中,通過`setInt`方法設(shè)置ID,通過`setBinaryStream`方法設(shè)置二進(jìn)制流,并執(zhí)行SQL語句。

2. 利用Hibernate 儲存二進(jìn)制流

如果你使用Hibernate ORM框架,那么可以很方便地儲存二進(jìn)制流到數(shù)據(jù)庫中。Hibernate API內(nèi)置了對二進(jìn)制流數(shù)據(jù)類型的支持,只需要在實(shí)體類中添加`@Lob`注解即可。

以下是Hibernate ORM框架儲存二進(jìn)制流的樣例代碼:

“`java

@Entity

@Table(name = “image”)

public class Image{

@Id

private int id;

@Lob

private byte[] data;

// getters and setters

}

“`

在該實(shí)體類中,通過`@Lob`注解將屬性`data`設(shè)置成二進(jìn)制流類型,可以讓Hibernate自動將其映射到數(shù)據(jù)庫中的BLOB類型。這種方法不需要編寫SQL語句,插入數(shù)據(jù)時直接通過`session.save`方法實(shí)現(xiàn)即可。

3. 利用Spring JDBC 儲存二進(jìn)制流

Spring JDBC也提供了支持二進(jìn)制流儲存的API,通過JdbcTemplate對象可以完成二進(jìn)制流與數(shù)據(jù)庫的交互。

以下是Spring JDBC中儲存二進(jìn)制流的樣例代碼:

“`java

@Autowired

JdbcTemplate jdbcTemplate;

public void updateAvatar(int userId, InputStream avatar){

jdbcTemplate.update(

“UPDATE user SET avatar=? WHERE id=?”,

new Object[] { avatar, userId },

new int[] { Types.BLOB, Types.INTEGER }

);

}

“`

在該樣例中,我們通過`jdbcTemplate.update`更新語句將二進(jìn)制流寫入數(shù)據(jù)庫中,在更新參數(shù)中需要指定類型為BLOB。這種方法比較簡單,并且不需要編寫SQL語句。

以上就是Java如何儲存二進(jìn)制流于數(shù)據(jù)庫的操作,可以根據(jù)實(shí)際情況選擇適合自己的方法。無論是JDBC API、Hibernate ORM框架還是Spring JDBC,都提供了方便快捷的API讓我們可以很容易地儲存數(shù)據(jù)到數(shù)據(jù)庫中。深入理解這些API的使用方式,能夠大大提高Java在實(shí)際項(xiàng)目中的開發(fā)效率。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220

Java怎么做到把圖片轉(zhuǎn)換成流存入數(shù)據(jù)庫,然后怎么再把圖片顯示出來。

oracle如下

數(shù)據(jù)庫中提供了兩種字段類型 Blob 和 Clob 用于存儲大型字符串或二進(jìn)制數(shù)據(jù)(如圖片)。

Blob 采用單數(shù)散字節(jié)存儲,適合保存二進(jìn)制數(shù)據(jù),如圖片文件。

Clob 采用多字節(jié)存儲,適合保存大型文本數(shù)據(jù)。

首先創(chuàng)建一橘枝個空 Blob/Clob 字段,再從這個空 Blob/Clob字段獲取游標(biāo),例如下面的代碼:

PreparedStatement ps = conn.prepareStatement( ” insert into PICTURE(image,resume) values(?,?) ” );

// 通過oralce.sql.BLOB/CLOB.empty_lob()構(gòu)造空Blob/Clob對象

ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());

ps.setClob( 2 ,oracle.sql.CLOB.empty_lob());

ps.excuteUpdate();

ps.close();

// 再次對讀出Blob/Clob句柄

ps = conn.prepareStatement( ” select image,resume from PICTURE where id=? for update ” );

ps.setInt( 1 , 100 );

ResultSet rs = ps.executeQuery();

rs.next();

oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 );

oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 );

// 將二進(jìn)制數(shù)據(jù)寫入Blob

FileInputStream inStream = new FileInputStream( ” ” );

OutputStream outStream = imgBlob.getBinaryOutputStream();

byte buf = new byte ;

int len;

while (len = inStream.read(buf) > 0 ) {

outStream.write(buf, 0 ,len);

}

inStream.close();

outStream.cloese();

// 將字符串寫入Clob

resClob.putString( 1 , “圓畢敏 this is a clob ” );

// 再將Blob/Clob字段更新到數(shù)據(jù)庫

ps = conn.prepareStatement( ” update PICTURE set image=? and resume=? where id=? ” );

ps.setBlob( 1 ,imgBlob);

ps.setClob( 2 ,resClob);

ps.setInt( 3 , 100 );

ps.executeUpdate();

ps.close();

java : 一個excel文件以二進(jìn)制的形式存在數(shù)據(jù)庫中 如何將它導(dǎo)出并下載到本地

從數(shù)據(jù)庫中得到Blob/Clob,然蠢桐察后得到帶茄InputStream,直輪孫接給response.getOutputStream() 輸出就可以

關(guān)于java 如何將二進(jìn)制的流保存到數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計(jì),成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。


文章標(biāo)題:Java如何儲存二進(jìn)制流于數(shù)據(jù)庫?(java如何將二進(jìn)制的流保存到數(shù)據(jù)庫)
文章出自:http://www.dlmjj.cn/article/ccegoeh.html