1.将Blob、Clob类型数据保存到数据库

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement; public class Test4 {
/**
* 将图片、文本保存在数据库
* Blob、Clob
* @author 容杰龙
*/
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/rjl";
String user="rjl";
String password="123";
Connection conn = DriverManager.getConnection(url, user, password);
String sql1="insert into pic(img,msg) values(?,?)"; File file=new File("C:/Users/Rong/Desktop/qq.png");
FileInputStream inputStream = new FileInputStream(file); FileReader reader = new FileReader("C:/Users/Rong/Desktop/msg.txt"); PreparedStatement ps = conn.prepareStatement(sql1);
//字节流-二进制图像
ps.setBlob(1, inputStream);
//字符流
ps.setClob(2, reader);
int count = ps.executeUpdate();
if (count>0) {
System.out.println("添加成功!");
}
} catch (Exception e) {
e.printStackTrace();
} } }

2.从数据库表里读取Blob、Clob类型数据

 package com.rong.web;

 import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; public class Test5 { /**
* 读取MySQL数据库Blob、Clob类型的数据到硬盘
* @author 容杰龙
*/
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/rjl?user=root&password=123123";
Connection conn = DriverManager.getConnection(url);
String sql="select * from pic where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 1);
ResultSet rs = ps.executeQuery();
while(rs.next()){
//获取字节输入流
InputStream inputStream = rs.getAsciiStream("img");
//获取字符输入流
Reader reader = rs.getCharacterStream("msg");
byte[] bytes=new byte[1024];
char[] chars=new char[1024];
int len=0;
//创建文件输出流,设置文件存储的硬盘位置
FileOutputStream fos = new FileOutputStream("C:/Users/Administrator/Desktop/jdbc.png");
FileWriter fw = new FileWriter("C:/Users/Administrator/Desktop/jdbc.txt");
//字节输出
while ((len=inputStream.read(bytes))!=-1) {
fos.write(bytes, 0, len);
}
fos.close();
inputStream.close();
len=0;
//字符输出
while ((len=reader.read(chars))!=-1) {
fw.write(chars, 0, len);
}
fw.close();
reader.close(); }
} catch (Exception e) {
e.printStackTrace();
} } }
 package com.rong.web;

 import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; public class Test6 { /**
* 读取MySQL数据库Blob、Clob类型的数据到硬盘
* @author 容杰龙
*/
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/rjl?user=root&password=123123";
Connection conn = DriverManager.getConnection(url);
String sql="select * from pic where id=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 1);
ResultSet rs = ps.executeQuery();
while(rs.next()){
//获取blob对象
Blob blob = rs.getBlob("img");
//获取二进制字节输入流
InputStream binaryStream = blob.getBinaryStream();
////////////////////////////////////////////////// //获取clob对象
Clob clob = rs.getClob("msg");
//获取字符输入流
Reader characterStream = clob.getCharacterStream(); byte[] bytes=new byte[1024];
char[] chars=new char[1024];
int len=0;
//创建文件输出流,设置文件存储的硬盘位置
FileOutputStream fos = new FileOutputStream("C:/Users/Administrator/Desktop/jdbc.png");
FileWriter fw = new FileWriter("C:/Users/Administrator/Desktop/jdbc.txt");
//字节输出
/////////////////////////////////
// byte[] bs = rs.getBytes("img");
// fos.write(bs);
////////////////////////////////////
while ((len=binaryStream.read(bytes))!=-1) {
fos.write(bytes, 0, len);
}
fos.close();
binaryStream.close();
len=0;
//字符输出
while ((len=characterStream.read(chars))!=-1) {
fw.write(chars, 0, len);
}
fw.close();
characterStream.close(); }
} catch (Exception e) {
e.printStackTrace();
} } }

jdbc 3.0的更多相关文章

  1. jdbc 4.0新特性

    来自网络 在 Java SE 6 所提供的诸多新特性和改进中,值得一提的是为 Java 程序提供数据库访问机制的 JDBC 版本升级到了 4.0, 这个以 JSR-221 为代号的版本 , 提供了更加 ...

  2. Java SE 6 新特性: Java DB 和 JDBC 4.0

    http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...

  3. 请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库

    转载请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库 1.下载最新的JDBC(2012/3/6) http://www.microsoft.com/downloads/zh-cn/de ...

  4. java web项目部署到tomcat 8.5 此驱动程序不支持 Java Runtime Environment (JRE) 1.8 版。请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库

    1:项目使用的是jre1.8版本. 2:服务器 apache-tomcat-8.5.23 报错如下: 严重 [com.mchange.v2.async.ThreadPoolAsynchronousRu ...

  5. JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了

    JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了 代码示例 转自 https://docs.oracle.com/javase/tutorial/jdbc/o ...

  6. Java数据库——JDBC 2.0操作

    可滚动的结果集 让结果集滚动起来 //================================================= // File Name : JDBC20_demo //-- ...

  7. jdbc 6.0

    1.获取数据库自动生成的键值 package com.rong.jielong; import java.sql.Connection; import java.sql.DriverManager; ...

  8. jdbc 5.0

    1.事务 事务将单个SQL语句或一组SQL语句视为一个逻辑单元,如果任何语句失败,整个事务将失败. jdbc的MySQL驱动程序中的事务默认是自动提交. 默认情况下,每个SQL语句在完成后都会提交到数 ...

  9. jdbc 4.0

    1.存储MySQL数据库的date.time.timestamp.datetime以及year类型数据 package com.rong.jielong; import java.sql.Connec ...

随机推荐

  1. linux3.4.2内核之块设备驱动

    1. 基本概念: 扇区(Sectors):任何块设备硬件对数据处理的基本单位.通常,1个扇区的大小为512byte.(对设备而言) 块  (Blocks):由Linux制定对内核或文件系统等数据处理的 ...

  2. linux查看文件命令tail的使用

    一.介绍 linux tail命令用途是依照要求将指定的文件的最后部分输出到终端中,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内 ...

  3. Java NIO (1)

    Java NIO (1) 看了下java核心技术这本书 关于nio的部分介绍比较少,而且如果自己写服务器的话nio用的还是比较多,整理一下nio的资料 java中nio主要是三个组件 Buffers ...

  4. 5.11-笨办法学python-习题13(argv)

    参考书目<learn python the hard way>——练习13 这个练习在Python上练了很多次,都运行不成功.在网上查了很多资料,发现很多人在练第13个练习的时候都有问题, ...

  5. lncRNA芯片重注释

    .caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table ...

  6. DotNetty学习笔记

    DotNetty项目本身的示例很容易运行起来,但是具体到真实的应用场景,还是需要进一步理解DotNetty的通道处理细节,这样才能够在实际项目应用中处理具体的问题. 简单的场景下会有以下几个问题,第一 ...

  7. 20155213 2016-2017-2 《Java程序设计》第六周学习总结

    20155213 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 输入与输出 串流设计 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而 ...

  8. C语言复习20170716

    C语言复习20170716 C数据类型 图片来自:C语言基本数据类型简介 C语言程序处理的数据有常量和变量两种形式. 常量是在程序中不能改变其值的量.例如:整型常量.实型常量.字符常量.字符串常量和枚 ...

  9. thinkphp查询:

    $Role=D('role'); //查询数据表 $role_data = $Role->order('role_id')->group('role_name')->select() ...

  10. WPF 动画:同为控件不同命 - 简书

    原文:WPF 动画:同为控件不同命 - 简书 1. 及格与优秀 读大学的时候,有一门课的作业是用 PPT 展示. 但是我们很多同学都把 PPT 当做 Word 来用,就单纯地往里面堆文字. 大家都单纯 ...