首先建一张表

create table picture(
picId char(6) primary key not null,
picName nvarchar(20) not null,
picfile image null
)

insert操作

//存入一张图片
static public void testInsert() {
Connection con = null;
PreparedStatement ps = null;
try {
con = JDBCUtils.getConnection();
String sql = "insert into picture values(?,?,?)";
ps = con.prepareStatement(sql);
ps.setObject(1, "000000");
ps.setObject(2, "zsben照片");
File f = new File("zsben.jpg");
FileInputStream is = new FileInputStream(f);
ps.setBinaryStream(3, is, f.length()); ps.execute();
System.out.println("执行成功"); }
catch(Exception ex) {
ex.printStackTrace();
}
finally {
JDBCUtils.closeResource(con, ps);
}
}

select 操作

//查询数据表中blob类型的字段
static public void testQuery() {
Connection con = null;
PreparedStatement ps = null;
ResultSet res = null;
try {
con = JDBCUtils.getConnection();
String sql = "select picId,picName,picfile from picture where picId = ?";
ps = con.prepareStatement(sql);
ps.setObject(1, "000000"); res = ps.executeQuery();
if(res.next()) {
String picId = res.getString(1);
String picName = res.getString(2); Picture pic = new Picture(picId,picName);
System.out.println(pic); Blob photo = res.getBlob(3);
InputStream is = photo.getBinaryStream();
FileOutputStream fos = new FileOutputStream("zsbenn.jpg");
byte[] buffer = new byte[1024];
int len;
while((len = is.read(buffer))!=-1) {
fos.write(buffer,0,len);
}
}
System.out.println("执行成功");
}
catch(Exception ex) {
ex.printStackTrace();
}
finally {
JDBCUtils.closeResource(con, ps, res);
}
}

jdbc blob插入及查询操作的更多相关文章

  1. beego orm 多对多插入和查询操作

    // User 用户表 type User struct { ID int UserName string Password string Articles []*Article `orm:" ...

  2. Phoenix表和索引分区数对插入和查询性能的影响

    1. 概述 1.1 HBase概述 HBase由master节点和region server节点组成.在100-105集群上,100和101是master节点,102-105是region serve ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. EF框架操作postgresql,实现WKT类型坐标的插入,查询,以及判断是否相交

    1.组件配置 首先,要下载.NET for Postgresql的驱动,npgsql,EF6,以及EntityFramework6.Npgsql,版本号 3.1.1.0. 由于是mvc项目,所以,把相 ...

  5. JDBC的使用五大步骤以及查询操作-数据库编程(二)

    jdbc的使用步骤 1.加载jdbc的驱动. 2.打开数据库的连接. 3.建立一个会话,然后执行增删改查等基本的操作. 4.对结果进行处理 5.对环境进行清理,比如关闭会话等. 查询操作 首先用Cla ...

  6. JDBC最原始的代码做查询操作

    首先编写一个User类. public class User { private String username; private String password; public String get ...

  7. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  8. 使用元数据简化jdbc代码---查询操作(用到反射)

    使用元数据简化jdbc代码---查询操作(用到反射) 一  思路分析 简化就是把共同的地方提取出来并放到一个方法里,在用到时只要调用就ok了,上一篇介绍了更新的操作,而查询的操作相对来说比较复杂,因为 ...

  9. MySQL数据库表的数据插入、修改、删除、查询操作及实例应用

    一.MySQL数据库表的数据插入.修改.删除和查询 CREATE DATABASE db0504; USE db0504; CREATE TABLE student ( sno ) NOT NULL ...

随机推荐

  1. Leetcode_897. Increasing Order Search Tree

    题目:https://leetcode.com/problems/increasing-order-search-tree/ 题意: 将一棵二叉搜索树,重排为一棵递增的二叉排序树. 解法1: rson ...

  2. Monkey命令及调试

    monkey命令: 执行50w次,随机数200,忽略crash,忽略超时,详细信息级别为1:monkey -p 包名 -s 200 --throttle 100 --ignore-crashes -- ...

  3. flutter页面布局二

    Stack 在flutter中,Stack表示堆的意思,可以用来实现页面的定位布局. Stack组件接收两个可选参数: alignment:配置所有子元素的显示位置 children:子组件    在 ...

  4. Python读取文件时出现UnicodeDecodeError 'gbk' codec can't decode byte 0x80 in position x

    Python在读取文件时 with open('article.txt') as f: # 打开新的文本 text_new = f.read() # 读取文本数据出现错误: UnicodeDecode ...

  5. 神秘的java Https

    说起网络安全,最基本的策略就是走https.https仿佛一条神秘通道,有了它,万事无忧. 究竟什么是https?如何实现https? 本文将揭开https的神秘面纱. WTF https 万事皆有源 ...

  6. python函数的参数-可变参数,关键字参数

    # -*- coding: utf-8 -*- #coding=utf-8 ''' @author: tomcat @license: (C) Copyright 2017-2019, Persona ...

  7. 北风设计模式课程---解释器模式(Interpreter Pattern)

    北风设计模式课程---解释器模式(Interpreter Pattern) 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用 ...

  8. SercletConfig 详解

    ServletConfig:从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet有效,一个servlet的ServletConfig对象不能被另一个servlet访问 ...

  9. 正则finditer的使用

    import re #\. 是刚需必须有 d+ 必须一个或多个数字 pattern = re.compile(r'\d+\.\d*') d = pattern.finditer('3.14159265 ...

  10. VB - 操作符(含Is)

    在VBScript运算符中,加减乘除都是我们常用的符号,乘方使用的是 ^ ,取模使用的Mod. 在比较操作符中,等于.小于.大于.小于等于.大于等于都与我们常用的符号是一致的,而不等于是小于和大于连用 ...