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数据库类型读取和存的更多相关文章

  1. Oracle (分类、数据库类型、序列)

    分类: 1.DDL (定义语句) create  .alter .drop 不需要commit create table aaa( tt1 varchart ) 2. DML (操纵语句) lnset ...

  2. 2018.5.30 Oracle数据库PLSQL编程---游标的使用

    显示游标的步骤 /* 显示游标处理步骤 1.声明游标 语法结构:cursor 游标名称 is SQL 语句; 2.打开游标 语法结构:open游标名称; 3.提取数据 语法结构:fetch 4.关闭游 ...

  3. Oracle数据库类型

    Oracle数据库类型 字符类型char[(length)] 定长字符 最长2000字节varchar2[(length)] 可变长度的字符数据类型,最长4000字节NCHAR[(length)] 固 ...

  4. MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】

    用char(1):可以表示字符或者数字,但是不能直接计算同列的值.存储消耗1个字节 用tinyint:只能表示数字,可以直接计算,存储消耗2个字节 用bit: 只能表示0或1,不能计算,存储消耗小于等 ...

  5. 数组做为参数传入Oracle存储过程操作数据库

    p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; text-align: justi ...

  6. SQL 横转竖 、竖专横 (转载) 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 C# 读取PDF多级书签 Json.net日期格式化设置 ASPNET 下载共享文件 ASPNET 文件批量下载 递归,循环,尾递归 利用IDisposable接口构建包含非托管资源对象 《.NET 进阶指南》读书笔记2------定义不可改变类型

    SQL 横转竖 .竖专横 (转载)   普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 ...

  7. sql server 在作业中 远程连接 oracle mysql sqlserver 数据库

    在作业中执行远程连接时,需要对本次作业执行的步骤指定特定用户 并且该用户必须拥有所需操作数据库的db_owner角色,和服务器sysadmin角色 在作业中执行远程连接时,需要做登录映射 下面是我在作 ...

  8. mybatis+oracle 完成插入数据库,并将主键返回的注意事项

    mybatis+oracle 完成插入数据库,并将主键返回的注意事项一条插入语句就踩了不少的坑,首先我的建表语句是: create table t_openapi_batch_info( BATCH_ ...

  9. 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)

    1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主 ...

随机推荐

  1. 18-----BBS论坛

    BBS论坛(十八) 18.首页轮播图实现 (1)front/css/front_base.css .main-container{ width: 990px; margin: 0 auto; over ...

  2. 5-----BBS论坛

    BBS论坛(五) 5.1.cms后台修改密码功能完成 (1)新建app/forms.py # app/forms.py from wtforms import Form class BaseForm( ...

  3. find 根据时间查找,详解

    https://blog.csdn.net/u010181136/article/details/73322738 find可谓是aix/linux上使用较多的维护用命令,但很多时候需要用到针对时间的 ...

  4. docker+ bind mount 部署复杂flask应用

    报错如下: [root@test-wenqiang flask-skeleton]# docker run -d -p 80:5000 -v $(pwd):/skeleton --name flask ...

  5. java替换word表格2007

    package demo;import java.io.FileOutputStream;import java.util.HashMap;import java.util.Iterator;impo ...

  6. maya2012安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  7. C# 进一取整

    C#: // "/"号现在整形运算是取整,浮点运算时为除法运算 Console.WriteLine("(56/10):{0}", 56 / 10);//5 Co ...

  8. Android 中实现分享和第三方登陆---以新浪微博为例

    第三方登陆和分享功能在目前大部分APP中都有,分享功能可以将自己觉得有意义的东西分享给身边的朋友,而第三方登陆可以借助已经有巨大用户基础的平台(如QQ和新浪微博)的账号,让用户在使用自己APP的时候不 ...

  9. linux程序分析工具介绍(三)——sar

    本文要介绍的sar,是linux下用来分析系统本身运行情况的非常有用的工具.我们知道,程序在操作系统上要运行,要关注的点不外乎内存,CPU和IO(包括磁盘IO和网络IO).我们的应用程序在操作系统中运 ...

  10. 初学者配置第一个spring mvc Demo

    1.web.xml的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi= ...