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. 初识HDFS原理及框架

    目录 HDFS是什么 HDFS的优缺点 HDFS的框架 HDFS的读写流程 HDFS命令 HDFS参数 1. HDFS是什么 HDFS(Hadoop Distributed File System)是 ...

  2. c语言智能指针 附完整示例代码

    是的,你没有看错, 不是c++不是c#, 就是你认识的那个c语言. 在很长一段时间里,c的内存管理问题, 层出不穷,不是编写的时候特别费劲繁琐, 就是碰到内存泄漏排查的各种困难, 特别在多线程环境下, ...

  3. Button控件双击事件不执行

    Button控件双击事件不执行 最近组态组新加入了一位同事,该同事原先是做ASP.NET的,没有做过WindowForm的开发.所以就先安排一个小示例来测验一下.这个示例有些年头了,当年我进入组态开发 ...

  4. Visual SVN 备份

    -----------2018.11.27更新-------------- 这两天把SVN的服务器重做了,按照之前的LOAD,DUMP的方法备份恢复.发现了以下问题: 1,时间比较长,备份和恢复都很长 ...

  5. FPGA之CORDIC算法实现_代码实现(下)

    关于FPGA之CORDIC算法的纯逻辑实现,博主洋葱洋葱“https://www.cnblogs.com/cofin/p/9188629.html”以及善良的一休军“https://blog.csdn ...

  6. 141. Sqrt(x)【牛顿迭代法求平方根 by java】

    Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...

  7. # 20155224 2016-2017-2《Java程序设计》课程总结

    20155224 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我所期望的师生关系 预备作业2:我的技能与C语言学习 预备作业3:Linux的初步学习, ...

  8. 安装虚拟机与Linux的学习

    #虚拟机 在安装虚拟机之前,我先上网查了一些关于虚拟机的知识. 虚拟机,即Virtual Machine,在计算机科学中的体系结构裏,是指一种特殊的软件,他可以在计算机平台和终端用户之间创建一种环境, ...

  9. 20145226夏艺华 《Java程序设计》实验报告三

    实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领 ...

  10. 【java笔记】Calendar.getInstance()是什么意思

    Calendar类是个抽象类,因此本身不能被实例化,然而在却创建了Calendar 的对象,但并不是抽象类可以创建对象这个对象并不是Calendar 自身实例,而是其子类实例,这是在getInstan ...