/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.sql.*;
import java.io.*;
import java.lang.*;
/**
*
* @author MichaelChan
*/
public class StoreImage {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException {
// TODO code application logic here
Connection connection=null;
String connectionURL="jdbc:mysql://127.0.0.1:3306/map";
PreparedStatement psmnt=null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection=DriverManager.getConnection(connectionURL, "root","19880818");
File image=new File("E://START//207//Project//chipmunk.jpg"); //need to change
insertfile(connection,psmnt,image);
getfile(connection,"chipmunk.jpg");
//update(connection,psmnt,"image");
}
catch(Exception ex){
System.out.println("Found some error: "+ex);
}
finally{
connection.close();
}
}
public static void insertfile(Connection connection, PreparedStatement psmnt, File image) throws SQLException{
try{
psmnt=connection.prepareStatement
("insert into image(name,image,size,timestamp) values(?,?,?,?)" );
psmnt.setString(1, image.getName());
psmnt.setLong(3, image.length());
java.util.Date now=new java.util.Date();
psmnt.setTimestamp(4, new java.sql.Timestamp(now.getTime()));
FileInputStream fis=new FileInputStream(image);
psmnt.setBinaryStream(2,(InputStream)fis,(int)(image.length()));
int s=psmnt.executeUpdate();
if(s>0){
System.out.println("Uploaded successfully!");
}
else{
System.out.println("Unsuccessfully to upload image");
}
}catch(Exception e){
System.out.println("Found some error:");
e.printStackTrace();
}finally{
psmnt.close();
}
}
public static void update(Connection connection, PreparedStatement psmnt,String tablename) throws SQLException{
psmnt=connection.prepareStatement("update "+tablename);
psmnt.executeUpdate();
}
public static void getfile(Connection connection, String filename) throws SQLException, FileNotFoundException, IOException{
ResultSet rs = null;
PreparedStatement psmnt=null;
try{
psmnt=connection.prepareStatement("select image from image where name = ?");
psmnt.setString(1, filename);
rs=psmnt.executeQuery();
while(rs.next()){
Blob blob=rs.getBlob("image");
File file=new File(filename);
FileOutputStream outStream=new FileOutputStream(file);
InputStream inStream=blob.getBinaryStream();
int length=-1;
int size=(int)blob.length();
byte [] bytefile=new byte[size];
while ((length = inStream.read(bytefile)) != -1)
{
outStream.write(bytefile, 0, length);
outStream.flush();
}
inStream.close();
outStream.close();
}
}
finally{
rs.close();
psmnt.close();
}
}
}