java对oracle的CLOB读写,使用Base64对文件进行编码及解码。

本文介绍了如何使用Java将带有签名的文件(如PDF或图片)通过Base64编码存储到Oracle数据库的CLOB字段中,以及如何从数据库中读取CLOB内容并解码生成文件。示例代码展示了如何实现这个过程,包括创建数据库表、编码文件、插入CLOB、读取CLOB和解码文件。
摘要由CSDN通过智能技术生成

        随着互联网的发展,CA电子签名越来普遍,需要将带有签名的pdf(或者图片格式)直接存在oracle数据库的CLOB字段中,也需要将数据库中的CLOB读取出来生成pdf(或者图片), 我们可以使用Base64对文件进行编码然后存入数据库中,而当我们需要的时候可以从数据库中读取并生成文件。

   以下代码用到两个jar包,一个是oracle11g操作所需ojdbc6.jar,一个是Base64所需的包commons-codec-1.8.jar。

   读取本地文件路径:C:\\Users\\Administrator\\Desktop\\12345678.jpg    生成文件存放路径D:\\path\\

   

package Test_Base64_Clob;


import java.sql.*;
import java.io.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import org.apache.commons.codec.binary.Base64;


public class Test_Base64_Clob {
    
    public  static void main (String[] args)
    {
         Test_Base64_Clob ts =new Test_Base64_Clob();
         //1、先建数据库表
             ts.CreateTable();
         //2、使用Base64对文件进行编码,生成字符串
             String str=null;
             ts.GetStrByFile();
         //3、将Base64字符串存在CLOB对象中
             ts.InsertClob(str);
         //4、读取数据库的CLOB
            str=ts.getClobToStr();
            System.out.print("获取字符串是:"+str+"\n");
          //5、将Base64的字符串解码生成文件
            ts.GenerateImage(str);
         
         
    }
    
    
    //createTable  start 
    //创建测试表
    public void CreateTable()
    {
        
        try
        {

            Class.forName("oracle.jdbc.OracleDriver");
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String user = "scott";
            String password = "11";
            //连接数据库
            Connection conn = DriverManager.getConnection(url, user, password);
            //设置事务为手动提交
            conn.setAutoCommit(false);
            String name="heh";
            //查询用户是否存在表
            String  sql = "select count(1) as num from tab where tname='TEST'";
            int num=0;
            PreparedStatement ps = conn.prepareStatement(sql);
            ResultSet rs

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值