Saturday, April 20, 2019

java - Exception thrown while retrieving image from mysql database



I want to store image in binary format and retrieve it in binary format and display it in image format. I am able to store the file in binary format, but while retrieving it I get error java null pointer exception. Please point out the error. Here is the code:



import java.awt.Image;

import java.awt.Toolkit;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import java.sql.SQLException;
import java.sql.Statement;

public class InsertImageTest {
int len;
/**
* This is used to get the Connection
*
* @return
*/

public Connection getConnection() {
Connection connection = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "spanwave");
} catch (Exception e) {
System.out.println("Error Occured While Getting the Connection: - "
+ e);

}
return connection;
}

/**
* Insert Image
*/
public Image getImageFile(String fileName) throws Exception {
InsertImageTest ins= new InsertImageTest();
Connection con=ins.getConnection();

Statement stmt=con.createStatement();
// String baseName=StoreImage.getBaseName(fileName);
ResultSet rs=stmt.executeQuery("select * from trn_imgs where img_title='"+"Honda Car"+"'");
if (!rs.next()) {
System.out.println("Image:"+"honda car"+" not found");
return null;
}
// int len=rs.getInt(2);

byte [] b=new byte[len];

InputStream in = rs.getBinaryStream(3);
int n=in.read(b);
System.out.println("n: "+n);
in.close();
Image img=Toolkit.getDefaultToolkit().createImage(b);
System.out.println("Image: "+"honda car"+" retrieved ok, size: "+len);
return img;
}
public void insertImage() throws IOException {
Connection connection = null;

PreparedStatement statement = null;
FileInputStream inputStream = null;

try {
File image = new File("calender.png");
inputStream = new FileInputStream(image);
len=inputStream.available();
connection = getConnection();
statement = connection
.prepareStatement("insert into trn_imgs(img_title, img_data) "

+ "values(?,?)");
statement.setString(1, "Honda Car");
statement.setBinaryStream(2, (InputStream) inputStream,
(int) (image.length()));

statement.executeUpdate();
} catch (FileNotFoundException e) {
System.out.println("FileNotFoundException: - " + e);
} catch (SQLException e) {
System.out.println("SQLException: - " + e);

} finally {
try {
connection.close();
statement.close();
} catch (SQLException e) {
System.out.println("SQLException Finally: - " + e);
}
}

}


/***
* Execute Program
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
InsertImageTest imageTest = new InsertImageTest();
imageTest.insertImage();

Image img= imageTest.getImageFile("calender.png");
}

}

Answer



connection = getConnection();
Statement stmt = connection.createStatement();
ResultSet rs=stmt.executeQuery("select * from trn_imgs where img_title='"+"Honda Car"+"'");


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...