java操作mysql存储读取图片

MySql数据库传输图片+Java获取本地图片 先说MySql数据库传输图片 1.设计MySql数据库表 图片类型限制:   tinyblob:255个字符   blob:到65K字节   mediumblob:16M字节(我觉得选这个合适)   longblob:4GB 2.插入测试数据 现在说Java与MySql传输图片 有点懒,代码写到同一个类里了,做项目时记得把功能写到不同package 3.数据库连接固定写法 //连接数据库地址 static String url = "jdbc:mysql://localhost:3306/ 阅读详情


为了使用JSP灵活 需要把各种文件储存在数据库中 然后需要的时候将它读取出来显示到客户端 这些文件包括文本 图片 音乐等 人们统称为二进制文件 :: 二进制文件储存在数据库中的过程是  打开文件 将内容读到缓存区  然后直接连接创建JDBC语句对象 使用该缓冲区的数据 并执行更新 就完成了储存

1 在mysql中创建一个表picture_db

  1. create table picture_db(
  2. file_name varchar(255) not null,
  3. content longblob,
  4. primary key (file_name));
2 java 写储存文件的代码

  1. import java.sql.*;
  2. import java.io.*;
  3. import java.nio.*;
  4. public class UploadImage {
  5.     protected Connection dbConnection;
  6.     protected String driverName = "com.mysql.jdbc.Driver";
  7.     protected String dbURL = "jdbc:mysql://localhost:3306/sample_db";
  8.     protected String userID = "root";
  9.     protected String passwd = "yourpassword"; 

  10. public boolean storeImage(String sqlstr,File file){
  11.         try{
  12.             FileInputStream fin = new FileInputStream(file);
  13.             ByteBuffer nbf = ByteBuffer.allocate((int)file.length());
  14.             byte[] array = new byte[1024];
  15.             int offset =0,length=0;
  16.             while((length=fin.read(array))>0){
  17.                 if(length!=1024)
  18.                      nbf.put(array,0,length);
  19.                 else
  20.                      nbf.put(array);
  21.                  offset+=length;
  22.                 
  23.             }
  24.              fin.close();
  25.             byte[] content = nbf.array();
  26.             return setImage(sqlstr,content);
  27.             
  28.         }catch(FileNotFoundException e){
  29.              e.printStackTrace();
  30.             }catch (IOException e){
  31.                  e.printStackTrace();
  32.                 }
  33.             return false;
  34.     
  35.     }
  36.     
  37.     private boolean setImage(String sqlstr,byte[] in){
  38.         boolean flag = false;
  39.         if(sqlstr==null)
  40.              sqlstr="select * from picture_db";
  41.         try{
  42.               Class.forName(driverName);
  43.               dbConnection = DriverManager.getConnection(dbURL,userID,passwd);
  44.               Statement stmt = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  45.              ResultSet rs = stmt.executeQuery(sqlstr);
  46.              if(rs.next()){
  47.                rs.updateBytes(2,in);
  48.                rs.updateRow();
  49.              }
  50.              else{
  51.                  rs.moveToInsertRow();
  52.                  rs.updateString(1,"01");
  53.                  rs.updateBytes(2,in);
  54.                  rs.insertRow();
  55.              }
  56.               rs.close();
  57.               flag=true;
  58.                      }catch(Exception e){
  59.              e.printStackTrace();
  60.         }
  61.         return flag;
  62.         
  63.     } 
  64.     public static void main(String[] args){
  65.          UploadImage upload = new UploadImage();
  66.         try{
  67.             File file = new File("01.jpg");
  68.             if(upload.storeImage(null, file))
  69.             System.out.print("ture");
  70.             else
  71.                 System.out.print("False");
  72.             
  73.         }catch(Exception e){
  74.              e.printStackTrace();
  75.         }
  76.     }
  77. }

如果执行成功的话 系统打印 true  否则 false

3 就是将图片读取出来 与储存的过程相反 先建立连接 创建数据库查询JDBC对象 使用该语句来返回二进制结果 保存到文件中 

  1. <%@ page contentType = "image/jpeg;charset=GB2312"%>
  2. <%@ page import="java.sql.*"%><%@ page import="java.io.*"%>
  3. <%@ page import="com.sun.image.codec.jpeg.*"%>
  4. <%@ page import="javax.imageio.*"%>
  5. <%@ page import="java.awt.image.*"%><html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="image/jpeg;charset=GB2312">
  8. <title>showDBImage</title>
  9. </head>
  10. <body>
  11. <%
  12. String showImage ="select * from picture_db where file_name ='01'";
  13. Connection conn = null;
  14. BufferedInputStream inputImage = null;String driverName = "com.mysql.jdbc.Driver";
  15.        String dbURL = "jdbc:mysql://localhost:3306/sample_db";
  16.        String userID = "root";
  17.        String passwd = "yourpassword";try{
  18.      Class.forName(driverName).newInstance(); 
  19.      conn = DriverManager.getConnection(dbURL,userID,passwd); Statement st = conn.createStatement();
  20.      ResultSet rs = st.executeQuery(showImage);
  21.     while(rs.next()){
  22.          Blob blob = (Blob)rs.getBlob("content");
  23.          inputImage = new BufferedInputStream(blob.getBinaryStream());
  24.         } BufferedImage image = null;
  25.      image = ImageIO.read(inputImage);
  26.     ServletOutputStream sos = response.getOutputStream();
  27.      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
  28.      encoder.encode(image);
  29.      inputImage.close();
  30.     
  31. }catch(SQLException e)
  32. {
  33.      e.printStackTrace();
  34. }catch(IOException e){
  35.      e.printStackTrace();
  36. }
  37. %>
  38. </body>
  39. </html>
为了使用JSP灵活 需要把各种文件储存在数据库中 然后需要的时候将它读取出来显示到客户端 这些文件包括文本 图片 音乐等 人们统称为二进制文件 :: 二进制文件储存在数据库中的过程是  打开文件 将内容读到缓存区  然后直接连接创建JDBC语句对象 使用该缓冲区的数据 并执行更新 就完成了储存

1 在mysql中创建一个表picture_db

  1. create table picture_db(
  2. file_name varchar(255) not null,
  3. content longblob,
  4. primary key (file_name));
2 java 写储存文件的代码

  1. import java.sql.*;
  2. import java.io.*;
  3. import java.nio.*;
  4. public class UploadImage {
  5.     protected Connection dbConnection;
  6.     protected String driverName = "com.mysql.jdbc.Driver";
  7.     protected String dbURL = "jdbc:mysql://localhost:3306/sample_db";
  8.     protected String userID = "root";
  9.     protected String passwd = "yourpassword"; 

  10. public boolean storeImage(String sqlstr,File file){
  11.         try{
  12.             FileInputStream fin = new FileInputStream(file);
  13.             ByteBuffer nbf = ByteBuffer.allocate((int)file.length());
  14.             byte[] array = new byte[1024];
  15.             int offset =0,length=0;
  16.             while((length=fin.read(array))>0){
  17.                 if(length!=1024)
  18.                      nbf.put(array,0,length);
  19.                 else
  20.                      nbf.put(array);
  21.                  offset+=length;
  22.                 
  23.             }
  24.              fin.close();
  25.             byte[] content = nbf.array();
  26.             return setImage(sqlstr,content);
  27.             
  28.         }catch(FileNotFoundException e){
  29.              e.printStackTrace();
  30.             }catch (IOException e){
  31.                  e.printStackTrace();
  32.                 }
  33.             return false;
  34.     
  35.     }
  36.     
  37.     private boolean setImage(String sqlstr,byte[] in){
  38.         boolean flag = false;
  39.         if(sqlstr==null)
  40.              sqlstr="select * from picture_db";
  41.         try{
  42.               Class.forName(driverName);
  43.               dbConnection = DriverManager.getConnection(dbURL,userID,passwd);
  44.               Statement stmt = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  45.              ResultSet rs = stmt.executeQuery(sqlstr);
  46.              if(rs.next()){
  47.                rs.updateBytes(2,in);
  48.                rs.updateRow();
  49.              }
  50.              else{
  51.                  rs.moveToInsertRow();
  52.                  rs.updateString(1,"01");
  53.                  rs.updateBytes(2,in);
  54.                  rs.insertRow();
  55.              }
  56.               rs.close();
  57.               flag=true;
  58.                      }catch(Exception e){
  59.              e.printStackTrace();
  60.         }
  61.         return flag;
  62.         
  63.     } 
  64.     public static void main(String[] args){
  65.          UploadImage upload = new UploadImage();
  66.         try{
  67.             File file = new File("01.jpg");
  68.             if(upload.storeImage(null, file))
  69.             System.out.print("ture");
  70.             else
  71.                 System.out.print("False");
  72.             
  73.         }catch(Exception e){
  74.              e.printStackTrace();
  75.         }
  76.     }
  77. }

如果执行成功的话 系统打印 true  否则 false

3 就是将图片读取出来 与储存的过程相反 先建立连接 创建数据库查询JDBC对象 使用该语句来返回二进制结果 保存到文件中 

  1. <%@ page contentType = "image/jpeg;charset=GB2312"%>
  2. <%@ page import="java.sql.*"%><%@ page import="java.io.*"%>
  3. <%@ page import="com.sun.image.codec.jpeg.*"%>
  4. <%@ page import="javax.imageio.*"%>
  5. <%@ page import="java.awt.image.*"%><html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="image/jpeg;charset=GB2312">
  8. <title>showDBImage</title>
  9. </head>
  10. <body>
  11. <%
  12. String showImage ="select * from picture_db where file_name ='01'";
  13. Connection conn = null;
  14. BufferedInputStream inputImage = null;String driverName = "com.mysql.jdbc.Driver";
  15.        String dbURL = "jdbc:mysql://localhost:3306/sample_db";
  16.        String userID = "root";
  17.        String passwd = "yourpassword";try{
  18.      Class.forName(driverName).newInstance(); 
  19.      conn = DriverManager.getConnection(dbURL,userID,passwd); Statement st = conn.createStatement();
  20.      ResultSet rs = st.executeQuery(showImage);
  21.     while(rs.next()){
  22.          Blob blob = (Blob)rs.getBlob("content");
  23.          inputImage = new BufferedInputStream(blob.getBinaryStream());
  24.         } BufferedImage image = null;
  25.      image = ImageIO.read(inputImage);
  26.     ServletOutputStream sos = response.getOutputStream();
  27.      JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
  28.      encoder.encode(image);
  29.      inputImage.close();
  30.     
  31. }catch(SQLException e)
  32. {
  33.      e.printStackTrace();
  34. }catch(IOException e){
  35.      e.printStackTrace();
  36. }
  37. %>
  38. </body>
  39. </html>
java对sql数据库存取图片代码 java对sql数据库存取图片代码的简单示例。 立即下载

相关推荐

Java+MySql图片数据保存与读取的具体实例

Java+MySql图片数据保存与读取的具体实例Java+MySql图片数据保存与读取的具体实例Java+MySql图片数据保存与读取的具体实例Java+MySql图片数据保存与读取的具体实例

BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等

转载:http://www.cnblogs.com/warrior4236/p/5682830.html 一:建表 二:获取数据库连接 1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar 2:写代码连接数据库,如下: 1 /** 2 * 3 */ 4 package com.hlcui.file; ...

weixin_30399797的博客 548

Java实现用Mysql存取图片操作实例

主要介绍了Java实现用Mysql存取图片操作实例,本文讲解了使用BLOB类型保存和读取图片的代码实例,需要的朋友可以参考下

java mysql 实现图片_Java实现用Mysql存取图片操作实例

1.mysql中的blob类型mysql中可以存储大文件数据,一般使用的blob对象。如图片,视频等等。blob是一个二进制大对象,可以容纳可变数量的数据。因为是二进制对象,所以与编码方式无关。有4种blob类型:tinyblob、blob、mediumblob和longblob。它们只是可容纳值的最大长度不同。四种字段类型保存的最大长度如下:tinyblob - 255 bytesblob - ...

weixin_31563557的博客 521

Java从数据库中读取Blob对象图片并显示的方法

主要介绍了Java从数据库中读取Blob对象图片并显示的方法,实例分析了Java读取数据库中Blob对象图片的技巧与操作方法,需要的朋友可以参考下

嵌入式:简单的service框架

在嵌入式中,我们获取一个资源、设置一个变量、更新数据的话最直接的方式就是直接调用一个函数。这样的写法也可以满足基本的功能,前提是这个系统是只要一个任务,只有一个while(1)如图1.1。图1.1当有两个或者两个以上的任务的时候,同时调用一个函数(设置一个状态值、操作同一个资源、操作指针等行为)的流程如图1.2。图1.2当两个任务同时操作一个资源的时候,就会有重入的问题,会导致想不到的异常问题(数据不对、指针异常等)。

stupid的博客 984

Java Mysql存取图片

java实现mysql存取图片

cyt 762

如何用python开发“跳一跳”游戏【附源码】

jump_start_time = pygame.time.get_ticks() # 记录跳跃开始时间。jump_duration = current_time - jump_start_time # 计算跳跃持续时间。current_time = pygame.time.get_ticks() # 获取当前时间。jump_velocity = -15 # 设置跳跃的初始速度。# 如果小球跳跃结束,重置跳跃状态。# 根据跳跃持续时间计算跳跃高度。# 移除超出屏幕的障碍物。

helloshili2011的博客 2495

java+mysql实现保存图片到数据库,以及读取数据库存储的图片

一:建表   二:获取数据库连接 1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar 2:写代码连接数据库,如下: 1 /** 2 * 3 */ 4 package com.hlcui.file; 5 6 import java.sql.Connection; 7 import ja

陆总的博客 4700

DEM边界数值爆炸?用ArcGIS空间分析工具链搞定异常值过滤全流程

本文针对DEM数据处理中常见的边界数值爆炸问题,提供了一套完整的ArcGIS空间分析解决方案。文章深入剖析了异常值产生的根源,并详细介绍了从诊断、定位到使用栅格计算器、重分类等工具进行精准过滤与修复的全流程工作流,帮助用户彻底解决由插值误差、数据拼接及坐标系转换引发的数值异常。

weixin_29269441的博客 147

告别信号干扰!用Altium Designer 19搞定4层/6层PCB叠层设计的保姆级流程

本文详细介绍了如何使用Altium Designer 19进行4层/6层PCB叠层设计,解决信号干扰问题。通过实际案例和系统方法论,涵盖高速数字电路、混合信号系统等典型场景的设计优化,帮助硬件工程师和学生掌握电磁兼容(EMC)与信号完整性(SI)的核心技术。

weixin_27076351的博客 203

mysql blob 字段_mysql blob字段存储图片操作示例

表结构:create table view(id int unsigned NOT NULL AUTO_INCREMENT, catid int,title varchar(256),picture MEDIUMBLOB, content TEXT,PRIMARY KEY (id));java类操作:import java.awt.Image;import java.io.*;import jav...

weixin_29274969的博客 284

stc8g1k08硬件iic读取aht20温湿度及0.91寸oled显示

使用stc8g1k08读取aht20温湿度及0.91寸oled显示。

qq_61688416的博客 2770

往mysql中存储图片_往MySQL中存储图片_MySQL

1.创建数据库:CREATE TABLE photo ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100), photo MediumBlob, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*MySQL的...

weixin_35433920的博客 489

Ubuntu下NVIDIA驱动安装全攻略:从报错到完美运行nvidia-smi的完整流程

本文提供了在Ubuntu系统中安装NVIDIA驱动的完整解决方案,重点解决因驱动版本冲突、内核模块未加载或Secure Boot安全启动导致的`nvidia-smi`报错问题。通过彻底清理旧驱动、处理Secure Boot、选择兼容版本并正确安装,最终确保驱动完美运行。

weixin_29196891的博客 364

PCL 贪婪投影三角剖分算法【2025最新版】

本博客在学习PCL中的贪婪投影三角算法的基础上,实现了使用彩色点云重建彩色模型的应用案例。博客长期更新,最近一次更新时间为:2025年7月6日。

点云侠的博客 37万+

mysql blob存储图片_mysql blob字段存储图片操作示范

mysql blob字段存储图片操作示例表结构:create table view(id int unsigned NOT NULL AUTO_INCREMENT, catid int,title varchar(256),picture MEDIUMBLOB, content TEXT,PRIMARY KEY (id));欢迎大家阅读《mysql blob字段存储图片操作示范》,跪求各位点评,b...

weixin_33860377的博客 1114

FPGA面试题目笔记(一)——FPGA开发流程、亚稳态和竞争冒险、建立保持时间、异步FIFO深度等

同步异步电路、同步异步复位、时钟偏移和抖动、最小工作周期计算、触发器锁存器

H19981118的博客 1万+

Java操作mysql存储图片转载

为了使用JSP灵活,需要把各种文件储存到数据库中,然后需要的时候把它读取出来显示到客户端。这些文件包括音乐,图片,文本等,人们统称为二进制文件。首先,二进制文件储存到数据库的过程:打开文件,将内容读到缓冲区,然后直接联线创建jdbc语句对象,使用该缓冲区的数据,并执行更新,就完成了储存。例子: 首先在mysql中创建一个表 picture_db create ta...

aiguo1480的博客 206

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

java 图片存进mysql_Java操作mysql存储图片

http://bbs.chinaunix.net/archiver/tid-2289421.html1把图片当成一个二进制流就可以了 。mysql中有可以存储很大的2进制流文件。用的类型是:我们要做的是将一张图片存入Mysql中,在Mysql中用Blob 来存储图片和音频等大的数据项.Blob 按其容量可分为四种,分别为:tinyblob,blob ,mediumblob, longblob.他们...

weixin_42517649的博客 1559

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java用mysql存储图片_Java操作mysql存储图片转载

http://hi.baidu.com/xxfaxy/item/4c44f6fd4539dd5cc8f33705android自带的base64编码首先导入包import android.util.Base64;String 变量=android.util.Base64.encodeToString(字符串.getBytes(),Base64.DEFAULT);也可简写为String 变量=Bas...

weixin_42392367的博客 175

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

往MYSQL中插入,读写图片!

开发环境:MyEclipse+MySql 1,          随便找一个数据库建一张表,我这里用的是mysql数据库, (1)切换到mysql数据库:use mysql; (2)建表create table image( name char(20) not null primary key, image longblob ); PS:注意存放图片那个字段的类型,为longblob

Bad Boy 2万+

如何将图片放到mysql_怎么将图片添加到mysql中

正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进mysql数据库如果要图片存进数据库 要将图片转化成二进制。1.数据库存储图片的字段类型要为blob二进制大对象类型2.将图片流转化为二进制下面放上代码实例一、数据库CREATE TABLE `photo` (`id` int(11) NOT NULL,`name` varchar(255) DEFAU...

weixin_29239279的博客 376

往MySQL中存储图片

1.创建数据库:

SHEN525758203的专栏 1120

java 向 mysql数据库存储图片_实现向MYSQL数据库中存储或提取图片文件

实现向MYSQL数据库中存储或提取图片文件一些情况下,需要向数据库中存储一些2进制文件,比如图片文件等,这时候,向数据库存储数据不同于普通的字符串存储,我们需要对这个2进制文件使用JAVA处理2进制流的API进行处理,然后再进行存储。我们需要进行以下步骤来实现:向数据库中存储文件的时候,一样使用标准SQL语句,如:insertintodatabase(column1,column2,.....

weixin_39880895的博客 501

图片数据 java 存储_java存储图片到数据库

1 mysql存储大容量的二进制文件的格式是blob,其实除了图片还可以存别的2 要向数据库存储二进制的文件一定要把要存储的数据转换成二进制流废话就不多说了,大家看看代码很容易明白,先来看一个app程序,当然首先您要在数据库中先建立一个用于保存图片的表和相应的列,数据格式为blobpackage com.lizhe;import java.io.*;import java.sql.*;pu...

weixin_28882177的博客 889
上一篇: Java实现对Mysql的图片存取操作
下一篇: jquery获取当前时间
pingdouble
博客等级 码龄15年 325粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值