jdbc 3.0

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

 1 import java.io.File;
 2 import java.io.FileInputStream;
 3 import java.io.FileReader;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.PreparedStatement;
 7 
 8 
 9 public class Test4 {
10     /**
11      * 将图片、文本保存在数据库
12      * Blob、Clob
13      * @author 容杰龙
14      */
15     public static void main(String[] args) {
16         try {
17             Class.forName("com.mysql.jdbc.Driver");
18             String url="jdbc:mysql://localhost:3306/rjl";
19             String user="rjl";
20             String password="123";
21             Connection conn = DriverManager.getConnection(url, user, password);
22             String sql1="insert into pic(img,msg) values(?,?)";
23             
24             File file=new File("C:/Users/Rong/Desktop/qq.png");
25             FileInputStream inputStream = new FileInputStream(file);
26             
27             FileReader reader = new FileReader("C:/Users/Rong/Desktop/msg.txt");
28             
29             PreparedStatement ps = conn.prepareStatement(sql1);
30             //字节流-二进制图像
31             ps.setBlob(1, inputStream);
32             //字符流
33             ps.setClob(2, reader);
34             int count = ps.executeUpdate();
35             if (count>0) {
36                 System.out.println("添加成功!");
37             }
38         } catch (Exception e) {
39             e.printStackTrace();
40         }
41 
42     }
43 
44 }
View Code

 

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

 1 package com.rong.web;
 2 
 3 import java.io.FileOutputStream;
 4 import java.io.FileWriter;
 5 import java.io.InputStream;
 6 import java.io.Reader;
 7 import java.sql.Connection;
 8 import java.sql.DriverManager;
 9 import java.sql.PreparedStatement;
10 import java.sql.ResultSet;
11 
12 public class Test5 {
13 
14 
15     /**
16      * 读取MySQL数据库Blob、Clob类型的数据到硬盘
17      * @author 容杰龙
18      */
19     public static void main(String[] args) {
20         try {
21             Class.forName("com.mysql.jdbc.Driver");
22             String url="jdbc:mysql://localhost:3306/rjl?user=root&password=123123";
23             Connection conn = DriverManager.getConnection(url);
24             String sql="select * from pic where id=?";
25             PreparedStatement ps = conn.prepareStatement(sql);
26             ps.setInt(1, 1);
27             ResultSet rs = ps.executeQuery();
28             while(rs.next()){
29                 //获取字节输入流
30                 InputStream inputStream = rs.getAsciiStream("img");
31                 //获取字符输入流
32                 Reader reader = rs.getCharacterStream("msg");
33                 byte[] bytes=new byte[1024];
34                 char[] chars=new char[1024];
35                 int len=0;
36                 //创建文件输出流,设置文件存储的硬盘位置
37                 FileOutputStream fos = new FileOutputStream("C:/Users/Administrator/Desktop/jdbc.png");
38                 FileWriter fw = new FileWriter("C:/Users/Administrator/Desktop/jdbc.txt");
39                 //字节输出
40                 while ((len=inputStream.read(bytes))!=-1) {
41                     fos.write(bytes, 0, len);
42                 }
43                 fos.close();
44                 inputStream.close();
45                 len=0;
46                 //字符输出
47                 while ((len=reader.read(chars))!=-1) {
48                     fw.write(chars, 0, len);
49                 }
50                 fw.close();
51                 reader.close();
52                 
53             }
54         } catch (Exception e) {
55             e.printStackTrace();
56         }
57 
58     }
59 
60 }

 

 1 package com.rong.web;
 2 
 3 import java.io.FileOutputStream;
 4 import java.io.FileWriter;
 5 import java.io.InputStream;
 6 import java.io.Reader;
 7 import java.sql.Blob;
 8 import java.sql.Clob;
 9 import java.sql.Connection;
10 import java.sql.DriverManager;
11 import java.sql.PreparedStatement;
12 import java.sql.ResultSet;
13 
14 public class Test6 {
15 
16     /**
17      * 读取MySQL数据库Blob、Clob类型的数据到硬盘
18      * @author 容杰龙
19      */
20     public static void main(String[] args) {
21         try {
22             Class.forName("com.mysql.jdbc.Driver");
23             String url="jdbc:mysql://localhost:3306/rjl?user=root&password=123123";
24             Connection conn = DriverManager.getConnection(url);
25             String sql="select * from pic where id=?";
26             PreparedStatement ps = conn.prepareStatement(sql);
27             ps.setInt(1, 1);
28             ResultSet rs = ps.executeQuery();
29             while(rs.next()){
30                 //获取blob对象
31                 Blob blob = rs.getBlob("img");
32                 //获取二进制字节输入流
33                 InputStream binaryStream = blob.getBinaryStream();
34                 //////////////////////////////////////////////////
35                 
36                 //获取clob对象
37                 Clob clob = rs.getClob("msg");
38                 //获取字符输入流
39                 Reader characterStream = clob.getCharacterStream();
40                 
41                 byte[] bytes=new byte[1024];
42                 char[] chars=new char[1024];
43                 int len=0;
44                 //创建文件输出流,设置文件存储的硬盘位置
45                 FileOutputStream fos = new FileOutputStream("C:/Users/Administrator/Desktop/jdbc.png");
46                 FileWriter fw = new FileWriter("C:/Users/Administrator/Desktop/jdbc.txt");
47                 //字节输出
48                 /////////////////////////////////
49 //                byte[] bs = rs.getBytes("img");
50 //                fos.write(bs);
51                 ////////////////////////////////////
52                 while ((len=binaryStream.read(bytes))!=-1) {
53                     fos.write(bytes, 0, len);
54                 }
55                 fos.close();
56                 binaryStream.close();
57                 len=0;
58                 //字符输出
59                 while ((len=characterStream.read(chars))!=-1) {
60                     fw.write(chars, 0, len);
61                 }
62                 fw.close();
63                 characterStream.close();
64                 
65             }
66         } catch (Exception e) {
67             e.printStackTrace();
68         }
69 
70     }
71 
72 }
View Code

 

posted @ 2017-11-03 00:00  57容杰龙  阅读(278)  评论(0编辑  收藏  举报