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. x01.polls: 学习 django

    开发一个 Web 应用:x01.polls,可能比想像的还要容易一些,这完全得益于 django 框架. 1.安装 django: sudo pip3 install django 2.阅读 djan ...

  2. 郁金香指标开源库的使用--(tulipindicators-0.8.4)

    瞎逛发现最新出了这么一个指标库,有100多种指标的函数库,文档写的比较好,重要的是作者一直在维护. 把它编成库,然后测试一下,可用于自动交易,策略交易等开发. 1.下载地址 https://githu ...

  3. leetcode记录-两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...

  4. 一个servlet如何处理多个请求

    页面1:表单的action=login?method=login 页面2:表单的action=login?method=insert ..... 然后通过method的值采用不同方法进行处理. 如下 ...

  5. 20155212 ch03 课下作业

    T4 题目 通过输入gcc -S -o main.s main.c 将下面c程序"week0603学号.c"编译成汇编代码 int g(int x){ return x+3; } ...

  6. 20155216 实验二 Java面向对象程序设计

    实验二:Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD. 2.理解并掌握面向对象的三要素:封装.继承.多态. 3.初步掌握UML建模. 4.熟悉S.O.L.I.D原则. 5.了解设计 ...

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

    20155233 2016-2017-2 <Java程序设计>第9周学习总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛型和自定义枚举 会 ...

  8. 20155325 2016-2017-2 《Java程序设计》第2周学习总结

    教材学习内容总结 上节课讲了些思维方法:git,vim的使用技巧,推荐了picpick截图软件. 第三章书本上涵盖了基本语法内容 由于在语法方面java和c有相似之处,所以我重点关注不同之处和易忽略之 ...

  9. 【LG3233】[HNOI2014]世界树

    题面 洛谷 题解 代码 #include <iostream> #include <cstdio> #include <cstdlib> #include < ...

  10. Repo 的使用小结

    一.安装 创建目录和修改环境变量 $ mkdir ~/bin $ PATH=~/bin:$PATH 下载repo代码 $ curl https://storage.googleapis.com/git ...