package jdbc;import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class Demo04 {private InputStream is;private FileOutputStream fos;// 保存长二进制(LONGBLOB)数据类型public void saveImage() {String sql = "insert into test(img) values(?)";try (// 1. 获取数据库连接Connection conn = JDBCUtils.getConnection();// 2. 预编译 SQL 语句PreparedStatement pstmt = conn.prepareStatement(sql);// 3. 传入参数// 3.1 获取图片输入流InputStream is = Demo04.class.getClassLoader().getResourceAsStream("Tree.jpg");) {// 3.2 传参pstmt.setBinaryStream(1, is);// 4. 执行 SQL 语句pstmt.executeUpdate();} catch (IOException | SQLException e) {e.printStackTrace();}}// 读取长二进制(LONGBLOB)数据类型public void getAsImage() throws IOException {String sql = "select * from test where id = 1;";try (// 1. 获取数据库连接Connection conn = JDBCUtils.getConnection();// 2. 预编译 SQL 语句PreparedStatement pstmt = conn.prepareStatement(sql);// 3. 执行 SQL 语句ResultSet rs = pstmt.executeQuery();) {// 4. 从结果集对象中读取数据if (rs.next()) {// 4.1 获取图片输入流is = rs.getBinaryStream("img");// 4.2 创建图片输出流fos = new FileOutputStream(new File("tree.jpg"));// 4.3 实际读取到的数据长度int len = 0;// 4.3 使用byte[]数组来盛装数据byte[] bytes = new byte[1024];while((len = is.read(bytes)) != -1) {fos.write(bytes, 0, len);}}} catch (SQLException | IOException e) {e.printStackTrace();} finally {if (is != null) {is.close();}if (fos != null) {fos.close();}}}public static void main(String[] args) throws IOException {Demo04 demo04 = new Demo04();demo04.saveImage();demo04.getAsImage();}
}

JDBC中保存/读取长二进制(LONGBLOB)数据类型相关推荐

  1. cookie的细节——1.一次可不可以发送多个cookie?2. cookie在浏览器中保存多长时间?3. cookie能不能存中文?4. cookie共享问题?

    cookie的细节 1. 一次可不可以发送多个cookie? * 可以         * 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可. 2. ...

  2. JDBC中事务、批量操作、大数据类型、获取自动生成的主键、等用法

    1 事务的用法 事务的ACID属性: 通俗的说事务:指一组操作,要么都成功执行,要么都不执行-->原子性在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性事务发生前 ...

  3. java中char占的二进制,java数据类型与二进制详细介绍

    java数据类型与二进制详细介绍 在java中 Int 类型的变量占 4个字节 Long 类型的变量占8个字节 一个程序就是一个世界,变量是这个程序的基本单位. Java基本数据类型 1. 整数类型 ...

  4. 读取azkaban数据库中的longblob数据类型

    介绍 当需要读取azkaban数据库中的longblob数据类型的数据时,可以使用Java连接Mysql数据库的方式进行读取. 代码 代码如下: public String getErrorLog() ...

  5. sparksql 保存点_Spark(十二)【SparkSql中数据读取和保存】

    一. 读取和保存说明 SparkSQL提供了通用的保存数据和数据加载的方式,还提供了专用的方式 读取:通用和专用 保存 保存有四种模式: 默认: error : 输出目录存在就报错 append: 向 ...

  6. jdbc读取mysql时分秒yyyy-mm-dd hh:_[转]JDBC中日期时间的处理技巧

    Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒.毫秒以及时区的控制方法,同时也提供一些工具方法,比如日期/时间的比较,前后判断等. java.uti ...

  7. Spark _24 _读取JDBC中的数据创建DataFrame/DataSet(MySql为例)(三)

    两种方式创建DataSet 现在数据库中创建表不能给插入少量数据. javaapi: package SparkSql;import org.apache.spark.SparkConf; impor ...

  8. 微信小程序中如何将数据保存到内存中并且读取的同步写法

    前言 微信小程序保存到内存中有两种方法,一种是同步一种是异步,两个方法有着独特的用处,在小程序控制台中的Storage中可以查看保存到内存中的数据. 保存到内存中也就是我们平常说的本地存储,有一个内存 ...

  9. jdbc mysql查询显示图片_JDBC【向数据库中存入读取图片】

    JDBC-向数据库中存入读取图片 注:此代码依赖自定义的数据库连接工具类 1.向数据库存入一张照片 import java.io.File; import java.io.FileInputStrea ...

最新文章

  1. FastJson乱序问题
  2. nginx通过用户和密码来实现认证功能
  3. language support图标在哪里?怎么消失了?
  4. 全职带孩子可能会面临哪些问题?
  5. 做测试开发半年涨薪20W入职名企大厂,这位90后凭什么?
  6. 编译OpenJDK12:freetypeScaler.obj error LINK2019 无法解析的外部符号
  7. dual mysql 获取序列_FASTJSON反序列化和构造函数之间的一点小秘密
  8. 如何解决It's likely you're attempting to run Eclipse using the JRE instead of the JDK
  9. 软件测试中期答辩,中期答辩材料创新张颖
  10. Branch Prediction Is Not A Solved Problem:Measurements, Opportunities, and Future Directions(IISWC)
  11. 亚马逊服务器443端口开放配置aws
  12. 怎么查二手小米手机价格
  13. HTML px em pt长度单位(像素 相对长度 点)
  14. 百度静态网站全站搜索功能
  15. Server 2008改成个人习惯的配置
  16. 【tableau】4个基本图表
  17. springboot源码编译
  18. 拆车、炸机、毁魔方,这个疯狂的算法竞赛少年目的是这样的…
  19. Oracle 11g RAC 原地升级到 19c
  20. EZ 2018 05 06 NOIP2018 慈溪中学集训队互测(五)

热门文章

  1. [日推荐]『爱情保鲜计』来呀,虐狗呀!
  2. Redis-五种数据类型
  3. 取消ingress-nginx的nginx版本号
  4. 05 - 循环练习题
  5. 隐藏、显示<tr><td>标签
  6. nginx 同域名同端口多种不同路径的用法
  7. 北华航天工业学院计算机科学与技术,北华航天工业学院计算机科学与工程系介绍...
  8. iOS 之苹果运行机制总结
  9. 韦东山uboot_内核_根文件系统学习笔记4.4-第004课_根文件系统-第004节_构建根文件系统之构建根文件系统
  10. bing.com 重定向次数过多