2018.7.30 Oracle的Blog数据库类型读取和存
package com.lanqiao.shopping.test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.lanqiao.shopping.utils.DBHelper;
public class Test {
static PreparedStatement pstmt = null;
static ResultSet rs = null;
/*
* 创建图片的表myPicture
* create table myPicture(id number(4) primary key,img blob);
*/
//将图片写进数据库
public static void writeImgToBolb(){
Connection conn = DBHelper.getConn();
String sql = "insert into myPicture(id,img) values(?,?)";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,3);//id
//将图片转为输入流
File file = new File("D:\\Eclipse\\ImagesSave\\one.jpg");
InputStream in = new FileInputStream(file);
/*
String a = "sss";
System.out.println(a.length());//字符串是length方法
int[] i = new int[5];//数组是length属性
System.out.println(i.length);*/
//将输入流写入到myPicture表
pstmt.setBinaryStream(2, in,(int)file.length());
int result = pstmt.executeUpdate();
System.out.println("111");
if(result>0){
System.out.println("图片写入成功");
}else{
System.out.println("图片写入失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBHelper.closeConn(null, pstmt, conn);
}
}
//从数据库读取图片
public static void readImgToBlob(){
Connection conn = DBHelper.getConn();
String sql = "select * from myPicture where id=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 1);//id =1
rs = pstmt.executeQuery();
if(rs.next()){
//将图片从数据库中读取出来,类型为InputStream
InputStream imgIn = rs.getBinaryStream("img");
//通过IO流,将图片写到项目中(硬盘)
InputStream in = new BufferedInputStream(imgIn);
//将图片的输出路径设置为src(相对路径),图片名为myPic.png
OutputStream imgOut = new FileOutputStream("D:\\Eclipse\\ImagesSave\\myPic.jpg");
OutputStream out = new BufferedOutputStream(imgOut);
int len = -1;
while((len=in.read())!=-1){
out.write(len);
}
imgOut.close();
out.close();
imgIn.close();
in.close();
System.out.println("照片读取成功");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBHelper.closeConn(rs, pstmt, conn);
}
}
public static void main(String[] args) {
//writeImgToBolb();
readImgToBlob();
}
}
2018.7.30 Oracle的Blog数据库类型读取和存的更多相关文章
- Oracle (分类、数据库类型、序列)
分类: 1.DDL (定义语句) create .alter .drop 不需要commit create table aaa( tt1 varchart ) 2. DML (操纵语句) lnset ...
- 2018.5.30 Oracle数据库PLSQL编程---游标的使用
显示游标的步骤 /* 显示游标处理步骤 1.声明游标 语法结构:cursor 游标名称 is SQL 语句; 2.打开游标 语法结构:open游标名称; 3.提取数据 语法结构:fetch 4.关闭游 ...
- Oracle数据库类型
Oracle数据库类型 字符类型char[(length)] 定长字符 最长2000字节varchar2[(length)] 可变长度的字符数据类型,最长4000字节NCHAR[(length)] 固 ...
- MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】
用char(1):可以表示字符或者数字,但是不能直接计算同列的值.存储消耗1个字节 用tinyint:只能表示数字,可以直接计算,存储消耗2个字节 用bit: 只能表示0或1,不能计算,存储消耗小于等 ...
- 数组做为参数传入Oracle存储过程操作数据库
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justi ...
- SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型
SQL 横转竖 .竖专横 (转载) 普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...
- sql server 在作业中 远程连接 oracle mysql sqlserver 数据库
在作业中执行远程连接时,需要对本次作业执行的步骤指定特定用户 并且该用户必须拥有所需操作数据库的db_owner角色,和服务器sysadmin角色 在作业中执行远程连接时,需要做登录映射 下面是我在作 ...
- mybatis+oracle 完成插入数据库,并将主键返回的注意事项
mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_ ...
- 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)
1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主 ...
随机推荐
- hadoop - hbase 单机版的安装部署
1. 下载安装包. http://www.apache.org/dyn/closer.lua/hbase/ 选择版本,单机进入以下页面 2. tar xfz hbase-1.2.6-bin.tar.g ...
- ubuntu 常用安装软件
1. Ubuntu安装chrome. sudo apt-get install chromium-browser w
- JOIN 和 NULL
NULL值得数据出现在数据库发展的最初阶段的确给开发和使用者带来了很大的便利,这是因为它为我们节省了太多的磁盘空间,而且在那个年代磁盘是相当昂贵的.但是随着科技的发展,硬件系统的改进突飞猛进,NULL ...
- inventor卸载不干净
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- 宋宝华: 关于Linux进程优先级数字混乱的彻底澄清
宋宝华: 关于Linux进程优先级数字混乱的彻底澄清 原创: 宋宝华 Linux阅码场 9月20日 https://mp.weixin.qq.com/s/44Gamu17Vkl77OGV2KkRmQ ...
- Spark生态系统
在大数据非常流行的今天,每个行业都在谈论大数据,每个公司(互联网公司,传统企业,金融行业等)都在讨论大数据.高层管理者利用大数据来进行决策:数据科学家利用大数据来进行业务创新:程序员利用大数据来完成项 ...
- pta08-图7 公路村村通 (30分)
08-图7 公路村村通 (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N ...
- Machine learning preface
Machine learning Preface Definition T: Task E: Experience P: Performance Sequence: T -> E -> P ...
- Javascript 对象(Object)
//声明方式 //调用 Object构造函数创建 var user = new Object(); user.name = "小白"; user.say = function () ...
- elasticsearch增删改查crudp-----1
Elasticsearch一些增删改查的总结 环境Centos7+Es 5.x 简单介绍下ES的原理: 1,索引 --相当于传统关系型数据库的database或schema 2,类型 --相当于传 ...