import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class insertImage {
public static void main(String[]args) throws Exception{
String user = "root";//数据库密码
String driver = "com.mysql.jdbc.Driver";//数据库驱动
String password = "040694zhang";//数据库登录密码
String url = "jdbc:mysql://localhost:4017/p_w_picpath?characterEncoding=gbk";//数据库地址,注明使用的字符集
Class.forName(driver);//加载驱动
Connection conn = DriverManager.getConnection(url,user,password);//获得connection对象
PreparedStatement ps ;//声明PreparedStatement对象ps
File file = new File("pic/2.jpg");//获取要存储的图片文件
InputStream in = new FileInputStream(file);//获得文件输入流
byte[] b = new byte[in.available()];//声明二进制数组,长度为文件输入流的长度
in.read(b);//通过输入流,将文件读入二进制数组中
String sql = "insert into photo(name,photo) values('z',?)";
ps = conn.prepareStatement(sql);//执行sql语句
ps.setBytes(1, b);;//填充参数
ps.executeUpdate();//更新
in.close();//关闭文件输入流
ps.close();//关掉ps对象
conn.close();//连接关闭
}
}
将要存储的图片文件转换为二进制流,然后输入到数据库中。其中数据库是叫Image,表是photo,有两个列name,是varchar(20)类型的,photo列是Blob类型的。
转载于:https://blog.51cto.com/6641091/1543304