jdbc 3.0
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的更多相关文章
- jdbc 4.0新特性
来自网络 在 Java SE 6 所提供的诸多新特性和改进中,值得一提的是为 Java 程序提供数据库访问机制的 JDBC 版本升级到了 4.0, 这个以 JSR-221 为代号的版本 , 提供了更加 ...
- Java SE 6 新特性: Java DB 和 JDBC 4.0
http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html 长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何 ...
- 请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库
转载请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库 1.下载最新的JDBC(2012/3/6) http://www.microsoft.com/downloads/zh-cn/de ...
- 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 ...
- JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了
JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了 代码示例 转自 https://docs.oracle.com/javase/tutorial/jdbc/o ...
- Java数据库——JDBC 2.0操作
可滚动的结果集 让结果集滚动起来 //================================================= // File Name : JDBC20_demo //-- ...
- jdbc 6.0
1.获取数据库自动生成的键值 package com.rong.jielong; import java.sql.Connection; import java.sql.DriverManager; ...
- jdbc 5.0
1.事务 事务将单个SQL语句或一组SQL语句视为一个逻辑单元,如果任何语句失败,整个事务将失败. jdbc的MySQL驱动程序中的事务默认是自动提交. 默认情况下,每个SQL语句在完成后都会提交到数 ...
- jdbc 4.0
1.存储MySQL数据库的date.time.timestamp.datetime以及year类型数据 package com.rong.jielong; import java.sql.Connec ...
随机推荐
- 初识HDFS原理及框架
目录 HDFS是什么 HDFS的优缺点 HDFS的框架 HDFS的读写流程 HDFS命令 HDFS参数 1. HDFS是什么 HDFS(Hadoop Distributed File System)是 ...
- c语言智能指针 附完整示例代码
是的,你没有看错, 不是c++不是c#, 就是你认识的那个c语言. 在很长一段时间里,c的内存管理问题, 层出不穷,不是编写的时候特别费劲繁琐, 就是碰到内存泄漏排查的各种困难, 特别在多线程环境下, ...
- Button控件双击事件不执行
Button控件双击事件不执行 最近组态组新加入了一位同事,该同事原先是做ASP.NET的,没有做过WindowForm的开发.所以就先安排一个小示例来测验一下.这个示例有些年头了,当年我进入组态开发 ...
- Visual SVN 备份
-----------2018.11.27更新-------------- 这两天把SVN的服务器重做了,按照之前的LOAD,DUMP的方法备份恢复.发现了以下问题: 1,时间比较长,备份和恢复都很长 ...
- FPGA之CORDIC算法实现_代码实现(下)
关于FPGA之CORDIC算法的纯逻辑实现,博主洋葱洋葱“https://www.cnblogs.com/cofin/p/9188629.html”以及善良的一休军“https://blog.csdn ...
- 141. Sqrt(x)【牛顿迭代法求平方根 by java】
Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...
- # 20155224 2016-2017-2《Java程序设计》课程总结
20155224 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我所期望的师生关系 预备作业2:我的技能与C语言学习 预备作业3:Linux的初步学习, ...
- 安装虚拟机与Linux的学习
#虚拟机 在安装虚拟机之前,我先上网查了一些关于虚拟机的知识. 虚拟机,即Virtual Machine,在计算机科学中的体系结构裏,是指一种特殊的软件,他可以在计算机平台和终端用户之间创建一种环境, ...
- 20145226夏艺华 《Java程序设计》实验报告三
实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领 ...
- 【java笔记】Calendar.getInstance()是什么意思
Calendar类是个抽象类,因此本身不能被实例化,然而在却创建了Calendar 的对象,但并不是抽象类可以创建对象这个对象并不是Calendar 自身实例,而是其子类实例,这是在getInstan ...