• 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
  • 相关阅读:
    [hive]case 语句中字符串匹配
    shell-删除指定时间前的文件
    tensorflow expand_dims和squeeze
    nexus建立maven仓库私服及Snapshots、release的版本管理
    FileChannel指南
    java8关于时间的新特性
    java程序加到系统托盘的方法
    java程序 避免重复启动的方法
    httpClient 进行get请求
    springboot 多线程的使用
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/7775294.html
Copyright © 2020-2023  润新知