Posted By:
Rahul_Ramakrishnan
Posted On:
Friday, May 18, 2007 04:58 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 = getConnecti
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