Blob - Issue
0 posts in topic
Flat View  Flat View
TOPIC ACTIONS:
 

Posted By:   Rahul_Ramakrishnan
Posted On:   Friday, May 18, 2007 05:02 AM

This is my program ------------------ Code ==== import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import oracle.sql.*; public class BlobTest { public void insertBlob(String imageId, String fileName) { Connection conn = null; try { conn    More>>

This is my program
------------------

Code
====


import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.sql.Blob;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import oracle.sql.*;

public class BlobTest
{
public void insertBlob(String imageId, String fileName)
{
Connection conn = null;

try
{
conn = getConnection();

if (!fileName.equals(""))
{
PreparedStatement ps = conn.prepareStatement("INSERT INTO IMAGES VALUES(?, ?)");

ps.setString(1, imageId);

FileInputStream fis = new FileInputStream(fileName);

ps.setBinaryStream(2, fis, fis.available());

ps.execute();

ps.close();

}
else
{
PreparedStatement ps = conn.prepareStatement("INSERT INTO IMAGES VALUES (?, empty_blob())");

ps.setString(1, imageId);

ps.execute();

ps.close();

}
conn.close();

}
catch (Exception e)
{
e.printStackTrace();

}
}
public void readBlob(String fileName)
{
Connection conn = null;

try
{
conn = getConnection();

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery("select image from IMAGES");

while (rs.next())
{
// The following two lines can be replaced by
// InputStream is = rs.getBinaryStream(1);

Blob blob = rs.getBlob(1);

InputStream is = blob.getBinaryStream();

FileOutputStream fos = null;

fos = new FileOutputStream("c:/" + fileName);

byte[] data = new byte[1024];

int i = 0;

while ((i = is.read(data)) != -1)
{
fos.write(data, 0, i);

}
}
conn.close();

}
catch (Exception e)
{
e.printStackTrace();

}
}
public void writeBlob(String fileName)
{
Connection conn = null;

try
{
conn = getConnection();

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery("select image from IMAGES FOR UPDATE");

while (rs.next())
{
Blob blob = rs.getBlob(1);

System.out.println(blob);

OutputStream os = blob.setBinaryStream(1);

FileInputStream fis = null;

fis = new FileInputStream("c:/" + fileName);

byte[] data = new byte[1];

int i;

while ((i = fis.read(data)) != -1)
{
os.write(data, 0, i);

}
os.close();

break;

}
conn.close();

}
catch (Exception e)
{
e.printStackTrace();

}
}
private Connection getConnection() throws ClassNotFoundException, SQLException
{
Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.218:1521:ecprod", "ecprod", "breezer1");

conn.setAutoCommit(false);

return conn;

}
public static void main(String[] args)
{
BlobTest blobTest = new BlobTest();

blobTest.insertBlob("img9", "");

blobTest.writeBlob("Blobdata.gif");

}
}



Output
======
C:jdk1.4 in>
javac BlobTest.java

C:jdk1.4 in>
java BlobTest
null
java.lang.NullPointerException
at BlobTest.writeBlob(BlobTest.java:86)
at BlobTest.main(BlobTest.java:116)

C:jdk1.4 in



.    <<Less
About | Sitemap | Contact