JDBC-向数据库中存入读取图片

注:此代码依赖自定义的数据库连接工具类

1.向数据库存入一张照片

import java.io.File;

import java.io.FileInputStream;

import java.sql.Connection;

import java.sql.PreparedStatement;

public class BlobTest01 {

public static void main(String[] args) throws Exception {

/**

* 向photo中插入一条数据

*/

//1.连接数据库

Connection con = JDBCUtils.getConnection();

//2.预编译sql语句

String sql = "insert into photo(name,phoFile) values (?,?)";

PreparedStatement ps = con.prepareStatement(sql);

//3.填充占位符

ps.setString(1, "cat");

File file = new File("D:\\testdir\\server\\cat.jpg");

FileInputStream fis = new FileInputStream(file);

ps.setBlob(2, fis);

//4.执行sql

ps.execute();

//5.关闭资源

JDBCUtils.closeConnection(con, ps);

}

}

2.从数据库中读取照片并存到本地文件夹中

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.sql.Blob;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

public class BlobTest02 {

/**

* 从数据库中读取照片存储到本地

*/

public static void main(String[] args) throws Exception {

//1.连接数据库

Connection con = JDBCUtils.getConnection();

//2.预编译sql语句

String sql = "select `id`,`name`,`phoFile` from photo where name = ?";

PreparedStatement ps = con.prepareStatement(sql);

//3.填充占位符

ps.setString(1, "cat");

//4.执行sql

ResultSet rs = ps.executeQuery();

if (rs.next()){

int id = rs.getInt(1);

String name = rs.getString(2);

Blob photo = rs.getBlob(3);

File file = new File("D:\\testdir\\catpho.jpg");

InputStream fis = photo.getBinaryStream();

FileOutputStream fos = new FileOutputStream(file);

byte[] buffer = new byte[1024];

int len = fis.read(buffer);

while (len != -1){

fos.write(buffer, 0, len);

len = fis.read(buffer);

}

//5.关闭资源

fis.close();

fos.close();

}

JDBCUtils.closeConnection(con, ps, rs);

}

}

jdbc mysql查询显示图片_JDBC【向数据库中存入读取图片】相关推荐

  1. jdbc mysql查询显示图片_在实现JDBC时如何显示存储引擎-MySQL CONNECTION查询?

    使用SELECT ENGINE显示存储引擎名称.让我们首先创建一个表-create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREME ...

  2. mysql查询枚举类型转换_zendframework获取数据库中枚举类enum的数据并将其转换成数组...

    在model中建立这样的模型,在其中写入获取枚举类的方法 请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 class Student extends Zend_ ...

  3. 数据库直接存图片mysql_教你如何在MySQL数据库中直接储存图片

    如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件. 本文概述: 在 ...

  4. mysql如何存储图片_教你怎样在MySQL数据库中直接储存图片

    欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧!计算机编程语言 如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据 ...

  5. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

    功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML>     <HEAD>         < ...

  6. 使用mysql查询显示行号

    使用mysql查询显示行号,没有像oracle这么方便. 不过也可以通过设定变量显示行号,例如: SELECT @rowno:=@rowno+1 as rowno,r.* from t_article ...

  7. MySQL查询显示行号

    使用mysql查询显示行号: Oracle中有专门的rownum()显示行号的函数,而MySQL没有专门的显示行号函数,但可以通过用@rownum自定义变量显示行号. 主要代码: (@rownum : ...

  8. MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号

    MySQL查询时记录行号rownum MySQL查询显示行号MySQL查询显示行号MySQL流水号自MySQL自增行号 一.前言 Oracle中有rownum,实现查询的时候记录行号,MySQL中没有 ...

  9. 如何录制gif动态图片并在CSDN中插入动态图片

    我们在网上浏览别人的博客时,经常可以看到以gif动态图显示的程序效果演示和代码段,那么如何录制gif动态图片并在CSDN中插入动态图片呢?        下面介绍一种简单的方法,了解之后,你也可以将其 ...

最新文章

  1. soapUi 接口测试
  2. csgo如何保存自己的cfg_KXCSGO:CSGO开箱饰品交易方法
  3. 埋点、数仓到中台:数据体系的从0到1
  4. .net framework 4.0环境下遇到版本不同编译不通过的解决办法
  5. 【JUC】JDK1.8源码分析之ArrayBlockingQueue(三)
  6. 真实集群下-flink shell的remote模式实验记录
  7. 利用photoshop制作gif图片
  8. C/C assert()函数用法总结与注意事项
  9. java下文_java实现文件下载的两种方式
  10. !!统计字符(处理字符串)(getline函数使用)
  11. 全网首发:GB18030制定者站出来,$为什么要显示为¥,给大家解释一下
  12. AD555计算机辅助设计,震旦Aurora AD555 驱动
  13. Vue中点击url下载文件-案例
  14. Windows和Xyplorer的完美结合
  15. error: C2338: Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt
  16. 用c语言实现三子棋,它来了!!
  17. android 手机 恢复数据恢复,恢复安卓手机丢失的数据
  18. 【Axure交互教程】 隐藏页面滚动条的3种方法
  19. 绑定ZBar的OpenCV条形码和QR码扫描器
  20. K. chino with c language(水题)

热门文章

  1. 汇编语言将数据、代码、栈放入不同段基础
  2. CUDA上的量化深度学习模型的自动化优化
  3. 三维视觉惯性SLAM的有效Schmidt-EKF
  4. 【CV】深度学习中Epoch, Batch, Iteration的含义
  5. Android Intent setAction的使用注意
  6. No cached version of com.android.tools.build:gradle:2.0.0 available for offline mode.
  7. Unable to inject views for BcFragment{8d4c0 #1 id=0x7f0d00a1}
  8. 【shell】创建长目录,目录存在则忽略,缺失则创建
  9. js设置div透明度
  10. HTTP协议详解(真的很经典)