欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql存圖片在java中使用

錢瀠龍2年前8瀏覽0評論

MySQL是一款非常流行的關系型數據庫,很多Java開發者使用它來存儲數據。在Java中,我們需要使用JDBC驅動程序來連接MySQL數據庫。如果我們需要存儲大量圖片到數據庫中,我們可以使用MySQL中的BLOB類型來存儲這些圖片。

存儲圖片到MySQL數據庫中的步驟如下:

//連接數據庫
String url = "jdbc:mysql://localhost:3306/mydb";
String username = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, username, password);
//創建PreparedStatement對象
String sql = "INSERT INTO images (name, image) values (?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
//設置參數
ps.setString(1, "image1");
File imgFile = new File("image1.jpg");
FileInputStream fis = new FileInputStream(imgFile);
ps.setBinaryStream(2, fis, imgFile.length());
//執行更新操作
int rowsAffected = ps.executeUpdate();
//關閉連接和流
fis.close();
ps.close();
conn.close();

以上代碼演示了如何將名為“image1.jpg”的圖片文件存儲到“images”表中的“image”列中。在設置二進制流參數之前,我們需要使用“FileInputStream”對象打開圖像文件并獲取其大小。執行更新操作之后,我們需要關閉連接和流。

在Java中讀取從MySQL數據庫中檢索的圖片也很容易。我們可以使用“ResultSet”對象和流來獲取圖像數據。以下是示例代碼:

//連接數據庫
String url = "jdbc:mysql://localhost:3306/mydb";
String username = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, username, password);
//創建Statement對象
Statement stmt = conn.createStatement();
//執行查詢操作
String sql = "SELECT image FROM images WHERE name='image1'";
ResultSet rs = stmt.executeQuery(sql);
//獲取圖片數據
if (rs.next()) {
InputStream is = rs.getBinaryStream(1);
OutputStream os = new FileOutputStream("image1_out.jpg");
byte[] buffer = new byte[1024];
while (is.read(buffer) >0) {
os.write(buffer);
}
is.close();
os.close();
}
//關閉連接和流
rs.close();
stmt.close();
conn.close();

以上代碼演示了如何從“images”表中檢索名為“image1”的圖片,并將其寫入到名為“image1_out.jpg”的文件中。在獲取二進制流之后,我們需要使用“FileOutputStream”對象將其寫入磁盤文件。讀取操作完成后,我們需要關閉連接和流。