-
package com.lw.database;
-
-
import java.io.FileInputStream;
-
import java.io.FileOutputStream;
-
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;
-
-
/**
-
* CREATE: CREATE TABLE IDCard ( id char(18),pic BLOB);
-
* @author fhadmin
-
* from fhadmin.cn
-
*/
-
public class LOBTest {
-
-
protected static final String DEFAULT_URL = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8";
-
protected static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
-
-
private Connection connection = null;
-
-
public LOBTest() throws ClassNotFoundException, SQLException {
-
Class.forName(DRIVER_NAME);
-
connection = DriverManager.getConnection(DEFAULT_URL, "user", "password");
-
}
-
-
public void insert(String id,String path) throws SQLException, IOException {
-
PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO IDCard VALUES (?,?)");
-
preparedStatement.setString(1, id);
-
FileInputStream fileInputStream = new FileInputStream(path);
-
preparedStatement.setBlob(2, fileInputStream,fileInputStream.available());
-
preparedStatement.execute();
-
}
-
-
public void get(String id) throws SQLException, IOException {
-
PreparedStatement preparedStatement = connection.prepareStatement("SELECT pic FROM IDCard WHERE id = ?");
-
preparedStatement.setString(1, id);
-
ResultSet results = preparedStatement.executeQuery();
-
while(results.next()) {
-
FileOutputStream outputStream = new FileOutputStream("/Users/liuwei/temp.png");
-
InputStream inputStream = results.getBinaryStream(1);
-
int num = -1;
-
while((num=inputStream.read())!=-1) {
-
outputStream.write(num);
-
}
-
outputStream.flush();
-
inputStream.close();
-
outputStream.close();
-
}
-
}
-
-
public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException {
-
LOBTest test = new LOBTest();
-
test.insert("78907656784323", "/Users/liuwei/Documents/bt_next_nor.png");
-
test.get("78907656784323");
-
}
-
}
注意:
MySQL的四种BLOB类型
类型 大小(单位:字节)
TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
插入图像的时候,注意下图像大小,图像超过该类型所能容纳的最大字节的时候,会报错
阅读(1441) | 评论(0) | 转发(0) |