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/image?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类型的。
本文出自 “低调的气质” 博客,请务必保留此出处http://6641091.blog.51cto.com/6631091/1543304