`

数据库读取、保存图片

阅读更多
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:写入文件**:将查询结果中的二进制数据写入一个新的文件,或者直接在内存中处理这些数据。 - **步骤...

    c#读取图像保存到数据库中(数据库保存图片)

    代码如下:注: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中处理图片数据。在创建数据库表时,若要存储BMP或其他类型的图片,我们需要创建一个字段来容纳这些二进制数据。Access提供了两种字段类型可以...

    RichTextBox 练习 保存和读取图片数据库

    RichTextBox 练习,保存和读取图片数据库 QQ:292258449

    vb.net 使用Access数据库保存和读取图片文件

    保存图片至数据库涉及读取图片文件,将其转换为字节数组,然后将该数组存储在数据库的二进制字段中。以下代码片段展示了如何实现这一过程: ```vbnet Dim openFileDialog1 As New OpenFileDialog() If ...

    数据库存储读取图片

    // 从数据库读取字节数组 byte[] imageData = (byte[])reader["ImageData"]; string imageName = reader["ImageName"].ToString(); // 将字节数组还原为Image对象 using (MemoryStream ms = new MemoryStream...

    数据库图片保存到Excel代码工程

    在编程中,我们可以使用各种库来读取、处理和保存图片,例如Python的PIL(Pillow)库。它提供了丰富的功能,包括打开、修改、保存各种图像文件格式。在本项目中,我们需要从数据库中提取图片的BLOB数据,然后将其...

    数据库表保存读取图片的方法

    接下来,我们将介绍如何从Oracle数据库中读取图像数据,并将其显示出来。 #### 使用C#从数据库中读取图像 为了从数据库中检索图像数据,我们可以使用以下C#代码: ```csharp string sql = "select map from zcf_...

    易语言access数据库中添加与读取图片

    为了提高代码的可复用性和可维护性,可以将上述操作封装成函数或类,比如`添加图片到数据库`和`从数据库读取图片`的函数。 通过以上步骤,你可以在易语言环境下实现Access数据库中图片的添加与读取。理解这些基本...

    数据库保存/读取图片

    1. **图片保存**:在保存图片到数据库之前,需要先将图片转换成二进制流。这通常通过读取图片文件并将其加载到内存流对象中完成。然后,使用ADO的`Command`对象执行SQL INSERT语句,将流对象作为参数传递,将图片...

    Vb.net向sql server数据库中保存图片

    VB.NET 向 SQL Server 数据库中保存图片 在本节中,我们将讨论如何使用 VB.NET 将图片保存到 SQL Server 数据库中,并从数据库中取出图片浏览。这个例程使用了 SQL Server 的 Northwind 数据库,其中 employees 表...

    保存图片到数据库 delphi

    在检索图片时,只需从数据库读取流数据并写入到文件即可。注意,在实际应用中,需要根据具体数据库结构和安全规范对代码进行适当的调整和完善。 通过这种方式,Delphi开发者可以方便地在Oracle和SQL Server数据库中...

    C# 文件保存到数据库中或者从数据库中读取文件

    ### C# 中将文件保存至数据库或从数据库读取文件:深入解析与实践 #### 一、背景介绍 在软件开发领域,特别是Web应用开发中,处理文件上传和下载是常见的需求之一。对于某些场景,如用户头像、文档、图片等小型...

    Access数据库存储和读取图片

    在使用Access数据库存储和读取图片的场景中,开发者通常会遇到如何有效地处理二进制数据,例如图像文件。在Access 2003中,我们可以利用OLE对象字段类型来存储图片,而在C#(如Visual Studio 2005环境下)中,我们...

    数据库保存图片及显示

    数据库保存图片及显示是数据库应用中的一个重要环节,尤其在网页开发、内容管理系统或者社交媒体平台中。这个主题主要涉及如何将图片数据存储到数据库中,并在需要时正确地展示出来。以下是对这一知识点的详细说明:...

    java Web 读取数据库存储图片

    本篇文章将深入探讨如何使用Java Web技术从数据库中读取并展示存储的图片。 首先,我们需要一个数据库来存储图片。常用的数据库如MySQL、Oracle或SQL Server等都可以。图片数据通常会被转换为二进制格式(如Blob...

    C#读取图片文件存入数据库

    在C#编程中,将图片文件读取并存储到数据库是一项常见的任务,这通常涉及到二进制数据处理和数据库操作。下面将详细讲解这个过程,包括如何读取图片、将其转换为二进制数据,以及如何从数据库中提取并还原图片。 ...

Global site tag (gtag.js) - Google Analytics