java将图片存入数据库
(2013-01-15 19:48:47)
import java.sql.*;
import java.io.*;
import java.nio.*;
public class UploadImage {
protected Connection dbConnection;
protected String driverName = "com.mysql.jdbc.Driver";
protected String dbURL = "jdbc:mysql://localhost/sample_db";
protected String userID = "root";
protected String passwd = "111111";
public boolean storeImage(String sqlstr, File file) {
try {
FileInputStream fin = new FileInputStream(file);
ByteBuffer nbf = ByteBuffer.allocate((int) file.length());
byte[] array = new byte[1024];
int offset = 0, length = 0;
while ((length = fin.read(array)) > 0) {
if (length != 1024)
nbf.put(array, 0, length);
else
nbf.put(array);
offset += length;
}
fin.close();
byte[] content = nbf.array();
return setImage(sqlstr, content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
private boolean setImage(String sqlstr, byte[] in) {
boolean flag = false;
if (sqlstr == null)
sqlstr = "select * from picture_db";
try {
Class.forName(driverName);
dbConnection = DriverManager.getConnection(dbURL, userID, passwd);
Statement stmt = dbConnection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(sqlstr);
if (rs.next()) {
rs.updateBytes(2, in);
rs.updateRow();
} else {
rs.moveToInsertRow();
rs.updateString(1, "lena");
rs.updateBytes(2, in);
rs.insertRow();
}
rs.close();
flag = true;
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
public static void main(String[] args) {
UploadImage upload = new UploadImage();
try {
File file = new File("/home/dz/workspace/lena.jpg");
if (upload.storeImage(null, file))
System.out.print("true");
else
System.out.print("False");
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.nio.*;
public class UploadImage {
}