blob 와 string 형식의 상호 변환

2786 단어 자바
package com.coci.test2;

import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import oracle.sql.BLOB;

/**
 * 
 * @author Coci
 *
 */
public class TestBlob {

	public static void main(String[] args) {

		// blob         
		// String  getBytes             (    ),    blob  
		String blobStr = "blob";
		byte[] bytes = null;
		try {
			bytes = blobStr.getBytes("utf-8");
			System.out.println("===" + bytes);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}

		instertData(bytes);

		//        Blob     ,    String  ,    InputStream,  InputStream  byte[],  String  。
		// blob   String
//		String result = "";
//		try {
//			ByteArrayInputStream msgContent = (ByteArrayInputStream) blob
//					.getBinaryStream();
//			byte[] byte_data = new byte[msgContent.available()];
//			msgContent.read(byte_data, 0, byte_data.length);
//			result = new String(byte_data);
//		} catch (SQLException e) {
//			e.printStackTrace();
//		}
	}

	@SuppressWarnings("deprecation")
	public static void instertData(byte[] value) {
		// TODO Auto-generated method stub
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			String url = "jdbc:oracle:thin:@10.211.19.71:1521:orcl";
			String username = "yst";
			String password = "yst";
			Connection con = DriverManager.getConnection(url, username,
					password);
			con.setAutoCommit(false);
			String sql1 = "insert into testcoci(id,name) values('88',empty_blob())";

			Statement statement = con.createStatement();
			boolean b2 = statement.execute(sql1);
			System.out.println("   ===" + b2);

			String sql2 = "select name from testcoci where id=88 for update";
			PreparedStatement stmt = con.prepareStatement(sql2);
			ResultSet rs = stmt.executeQuery();
			OutputStream outStream = null;
			if (rs.next()) {

				System.out.println("   ");
				BLOB blob = (BLOB) rs.getBlob(1);
				System.out.println("     blob =" + blob + "=");
				outStream = blob.getBinaryOutputStream();
				outStream.write(value, 0, value.length);
			}
			outStream.flush();
			outStream.close();
			con.commit();
			con.close();

		} catch (Exception e) {
			System.out.println(e.getCause());
		}
	}
}


 
 

좋은 웹페이지 즐겨찾기