postgresql插入和读取图片

postgresql存储图片需要二进制类型bytea,创建一张测试表:

postgres=# create table test_image(img bytea);
CREATE TABLE

使用jdbc插入1.jpg

try {
connection = JDBCUtil.getConnection();
connection.setAutoCommit(false);
String sql = "INSERT INTO test_image(img) VALUES(?)";
preparedStatement = connection.prepareStatement(sql);
InputStream inputStream = new FileInputStream(img_name);
preparedStatement.setBinaryStream(1,inputStream);
preparedStatement.executeUpdate();
connection.commit();
} catch (SQLException | FileNotFoundException e) {
throw new RuntimeException(e);
} finally {
JDBCUtil.release(connection);
}

查看字段长度

postgres=# select length(img) from test_image;
length
--------
50726
(1 row)

读取图片

try {
connection = JDBCUtil.getConnection();
String sql = "SELECT img from test_image";
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
InputStream in = resultSet.getBinaryStream(1);
byte[] buffer = new byte[1024*1024];
OutputStream out = new FileOutputStream("new_1.jpg");
for (int i; (i = in.read(buffer)) > 0;)
{
out.write(buffer, 0, i);
out.flush();
}
out.close();
in.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.release(connection);
}

postgresql数据库插入和读取图片的更多相关文章

  1. ios 向sqlite数据库插入和读取图片数据

    向sqlite数据库插入和读取图片数据 (for ios) 假定数据库中存在表 test_table(name,image), 下面代码将图片文件test.png的二进制数据写到sqlite数据库: ...

  2. 图片保存到数据库以及C#读取图片

    图片保存到数据库,如果是sqlserver就是Image类型,如果保存到Oracle就是blob类型,在c#中相对应的就是byte[]类型,同时只需要对读出的数据强制转换就行(byte[])objec ...

  3. 数据库ADO方式读取图片

    void Caccess_test_1Dlg::OnBnClickedButton3()//将偏振图像存入数据库 { // TODO: 在此添加控件通知处理程序代码 if (!PathFileExis ...

  4. 【转】Oracle中插入和取出图片(用BLOB类型)

    原文地址:http://czllfy.iteye.com/blog/66737 其他参考资料地址:http://lavasoft.blog.51cto.com/62575/321882/ 要在orac ...

  5. Oracle数据库插入图片和读取图片

    package com.basicSql.scroll_page; import java.io.File; import java.io.FileInputStream; import java.i ...

  6. Python numpy插入、读取至postgreSQL数据库中bytea类型字段

    安装psycopg2模块,此模块用于连接PostgreSQL数据库 ​pip install psycopg2 # -*- coding: utf-8 -*- import psycopg2 impo ...

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

    一:建表 二:获取数据库连接 1:导入mysql的驱动jar包,mysql-connector-java-5.1.8-bin.jar 2:写代码连接数据库,如下: /** * */ package c ...

  8. MySQL数据库写入图片并读取图片显示到JLabel上的详解

    相较于Oracle,MySQL作为一个轻量级的开源的数据库,可谓是大大简化了我们的操作.这次我就来写一个关于数据库存入图片,获取图片的例子吧,也为了今后的复习使用.(我们一般采取存入路径的方式,而不是 ...

  9. PHP部分--图片上传服务器、图片路径存入数据库,并读取

    html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  10. [转]asp.net mvc 从数据库中读取图片

    本文转自:http://www.cnblogs.com/mayt/archive/2010/05/20/1740358.html 首先是创建一个类,继承于ActionResult,记住要引用Syste ...

随机推荐

  1. Linux环境下:程序的链接, 装载和库[静态链接]

    看以下例子 main.c extern int x; int main() { int y = 100; swap(&x,&y); return 0; } int x = 1; voi ...

  2. AR Engine毫秒级平面检测,带来更准确的呈现效果

    近年来,AR版块成为时下大热,这是一种将现实环境中不存在的虚拟物体融合到真实环境里的技术,用户借助显示设备可以拥有真实的感官体验.AR的应用场景十分广泛,涉及娱乐.社交.广告.购物.教育等领域:AR可 ...

  3. SQL Case条件判断SQL

    问题描述:在表中取到一些值做出判断,配合监控监测一些表中的数据.使用select case when if 来做条件查询判断 CASE 表达式遍历条件并在满足第一个条件时返回一个值(类似于 if-th ...

  4. ARM启动顺序

    iROM(也叫BL0)的作用:   初始化系统时钟,设置看门狗,初始化栈和堆   加载BL1 BL1的作用:   初始化RAM , 关闭Cache , 设置栈   加载BL2 BL2的作用:   初始 ...

  5. Vue22 VueCli 脚手架

    1 简介 CLI 是 Command-Line Interface, 翻译为命令行界面, 但是俗称脚手架 Vue CLI是一个官方发布 vue.js 项目脚手架 使用 vue-cli 可以快速搭建 V ...

  6. Idea导入本地Mavenue项目

    转https://www.cnblogs.com/kaola8023/p/14069519.html 一.导入Maven项目的问题 1. 安装后运行idea会直接打开如下页面 , 我们点击 Open  ...

  7. .NET 支付宝SDK新版 AlipayEasySDK 配置文件详细说明

    config代码: using Tea; namespace Alipay.EasySDK.Kernel { /// <summary> /// 客户端配置参数模型 /// </su ...

  8. freertos内存pvPortMalloc 和 malloc 区别 ,以及全局变量占用情况

    1.FreeRtos占用内存 #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 30 * 1024 ) ) pvPortMalloc是从configTOTAL_ ...

  9. 体验AI乐趣:基于AI Gallery的二分类猫狗图片分类小数据集自动学习

    摘要:直接使用AI Gallery里面现有的数据集进行自动学习训练,很简单和方便,节约时间,不用自己去训练了,AI Gallery 里面有很多类似的有趣数据集,也非常好玩,大家一起试试吧. 本文分享自 ...

  10. Protocol Buffers 3 学习

    一.定义消息 1.首先看一个简单的例子: 1 syntax = "proto3"; 2 3 message SearchRequest { 4 string query = 1; ...