java 向数据库中保存图片
Part1 : 保存图片到数据库中
import java.io.*;
import java.sql.*;
public class PutImg {
public void putimg(String filename) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydefault","root","skychen");
PreparedStatement pstmt = null;
String sql = "";
File file = new File(filename);
InputStream photoStream = new FileInputStream(file);
//sql = " UPDATE imgt SET img = ? ";
sql = "INSERT INTO imgtable (id,img) VALUES (1,?)";
//insert into images(PicNum,Content,Image) values(1,?,?)
pstmt = con.prepareStatement(sql);
pstmt.setBinaryStream(1,photoStream,(int)file.length());
//需获取文件输出流及其大小
pstmt.execute();
pstmt.close();
con.close();
} catch (Exception e) {
System.err.println("Error");
e.printStackTrace();
}
}
public static void main(String[] args){
if (!args[0].equals(null))
{
PutImg pi=new PutImg();
pi.putimg(args[0]);
System.out.println("Upload file success");
}
else{
System.out.println(args[0]);
System.out.println("Warnning: Please type your wanted filename!");
}
}
}
Part2 : 保存图片到文件
import java.io.*;
import java.sql.*;
class GetImg {
private String URL = "jdbc:mysql://localhost:3306/mydefault?user=root&password=skychen";
private Connection conn = null;
private PreparedStatement pstmt = null;
private ResultSet rs = null;
private File file = null;
public void blobRead(String outfilename, int picID) throws Exception {
FileOutputStream fos = null;
InputStream is = null;
byte[] Buffer = new byte[4096];
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(URL);
pstmt = conn.prepareStatement("select img from imgtable where id=?");
pstmt.setInt(1, picID); // 传入要取的图片的ID
rs = pstmt.executeQuery();
rs.next();
file = new File(outfilename);
if (!file.exists()) {
file.createNewFile(); // 如果文件不存在,则创建
}
fos = new FileOutputStream(file); //得到文件输出流
is = rs.getBinaryStream("img"); //从数据库中得到文件二进制流
int size = 0;
while ((size = is.read(Buffer)) != -1) { //读到buffer 中缓存
//System.out.println(size); //打印buffer大小
fos.write(Buffer, 0, size); //写入到文件输出流中
}
} catch (Exception e) {
System.out.println( e.getMessage());
} finally {
// 关闭用到的资源
fos.close();
rs.close();
pstmt.close();
conn.close();
}
}
public static void main(String[] args) {
if (!args[0].equals(null))
{
try {
GetImg gi=new GetImg();
gi.blobRead(args[0], 1);
} catch (Exception e) {
System.out.println("[Main func error: ]" + e.getMessage());
}
}
else{
System.out.println("Warnning: Please type your store path and filename!");
}
}
}
JAVA从数据库读取图片数据并保存到本地的方法
//从数据表tablepicture中读字段picture
Sql="Select picture From tablepicture";
Rs = Stmt.executeQuery(Sql);
while (Rs.next())
{
java.io.InputStream long_out = Rs.getBinaryStream("Picture");
if (long_out != null)
{
byte[] long_buf=new byte[8192];
int len=0;
java.io.FileOutputStream long_file = new java.io.FileOutputStream("E:/tomcatx/webapps/ROOT/upfile/instrumentimages/"+Rs.getString("pictureid")+".jpg");
while((len = long_out.read(long_buf))>0)
long_file.write(long_buf,0,len);
long_file.close();
long_out.close();
}
}
Rs.close();
分享到:
相关推荐
在标题“利用数据库存取图片,从数据库读取显示出来”中提到的方法,意味着我们将直接把图片的数据存储在数据库内,而不是仅仅保存图片的文件路径。这种方法在某些场景下可能是必要的,例如,如果需要确保图片与相关...
2. **从数据库读取图片**: - **步骤1:查询数据库**:使用SQL的`SELECT`语句获取图片的BLOB数据。 - **步骤2:写入文件**:将查询结果中的二进制数据写入一个新的文件,或者直接在内存中处理这些数据。 - **步骤...
代码如下:注:MyTools.g_PhotoField为数据库表中的图象字段名称//将图片保存到数据库中 if(this.picPhoto.Image==null) { m_DataRow[MyTools.g_PhotoField]=DBNull.Value; } else { try { MemoryStream ms = ...
在IT领域,图片上传至数据库以及从数据库读取图片是一个常见的需求,特别是在开发涉及用户交互、内容管理和数据存储的应用程序时。以下是对这个主题的详细解释。 首先,我们需要理解为什么要把图片存储到数据库中。...
标题“ACCESS数据库读取BMP图片”暗示了我们需要关注的是如何在Access中处理图片数据。在创建数据库表时,若要存储BMP或其他类型的图片,我们需要创建一个字段来容纳这些二进制数据。Access提供了两种字段类型可以...
RichTextBox 练习,保存和读取图片数据库 QQ:292258449
保存图片至数据库涉及读取图片文件,将其转换为字节数组,然后将该数组存储在数据库的二进制字段中。以下代码片段展示了如何实现这一过程: ```vbnet Dim openFileDialog1 As New OpenFileDialog() If ...
// 从数据库读取字节数组 byte[] imageData = (byte[])reader["ImageData"]; string imageName = reader["ImageName"].ToString(); // 将字节数组还原为Image对象 using (MemoryStream ms = new MemoryStream...
在编程中,我们可以使用各种库来读取、处理和保存图片,例如Python的PIL(Pillow)库。它提供了丰富的功能,包括打开、修改、保存各种图像文件格式。在本项目中,我们需要从数据库中提取图片的BLOB数据,然后将其...
接下来,我们将介绍如何从Oracle数据库中读取图像数据,并将其显示出来。 #### 使用C#从数据库中读取图像 为了从数据库中检索图像数据,我们可以使用以下C#代码: ```csharp string sql = "select map from zcf_...
为了提高代码的可复用性和可维护性,可以将上述操作封装成函数或类,比如`添加图片到数据库`和`从数据库读取图片`的函数。 通过以上步骤,你可以在易语言环境下实现Access数据库中图片的添加与读取。理解这些基本...
1. **图片保存**:在保存图片到数据库之前,需要先将图片转换成二进制流。这通常通过读取图片文件并将其加载到内存流对象中完成。然后,使用ADO的`Command`对象执行SQL INSERT语句,将流对象作为参数传递,将图片...
VB.NET 向 SQL Server 数据库中保存图片 在本节中,我们将讨论如何使用 VB.NET 将图片保存到 SQL Server 数据库中,并从数据库中取出图片浏览。这个例程使用了 SQL Server 的 Northwind 数据库,其中 employees 表...
在检索图片时,只需从数据库读取流数据并写入到文件即可。注意,在实际应用中,需要根据具体数据库结构和安全规范对代码进行适当的调整和完善。 通过这种方式,Delphi开发者可以方便地在Oracle和SQL Server数据库中...
### C# 中将文件保存至数据库或从数据库读取文件:深入解析与实践 #### 一、背景介绍 在软件开发领域,特别是Web应用开发中,处理文件上传和下载是常见的需求之一。对于某些场景,如用户头像、文档、图片等小型...
在使用Access数据库存储和读取图片的场景中,开发者通常会遇到如何有效地处理二进制数据,例如图像文件。在Access 2003中,我们可以利用OLE对象字段类型来存储图片,而在C#(如Visual Studio 2005环境下)中,我们...
数据库保存图片及显示是数据库应用中的一个重要环节,尤其在网页开发、内容管理系统或者社交媒体平台中。这个主题主要涉及如何将图片数据存储到数据库中,并在需要时正确地展示出来。以下是对这一知识点的详细说明:...
本篇文章将深入探讨如何使用Java Web技术从数据库中读取并展示存储的图片。 首先,我们需要一个数据库来存储图片。常用的数据库如MySQL、Oracle或SQL Server等都可以。图片数据通常会被转换为二进制格式(如Blob...
在C#编程中,将图片文件读取并存储到数据库是一项常见的任务,这通常涉及到二进制数据处理和数据库操作。下面将详细讲解这个过程,包括如何读取图片、将其转换为二进制数据,以及如何从数据库中提取并还原图片。 ...