Java+mysql 本地图片上传数据库及下载示例
这里有新鲜出炉的 Java 并发编程示例, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
本篇文章主要介绍了 Java+mysql 本地图片上传数据库及下载示例, 具有一定的参加价值, 有兴趣的可以了解一下
做一个将本地图片上传到 mysql 数据库的小实例, 顺便也下载下来到桌面检测是否上传成功
在写代码之前得先在数据库中建立 image 表, 用来存储图片
- create table image
- (id int primary key auto_increment ,
- name varchar(30) COMMENT '名称',
- content mediumblob COMMENT '图片');
下面直接上代码:
- package jdbc_imagetest;
- import java.io. * ;
- import java.sql. * ;
- /**
- * 将本地文件的图片传到数据库的 test 的 image 表中并下载到本机桌面
- */
- public class Test1 {
- private static String url = "jdbc:mysql://localhost:3306/test";
- private static String user = "root";
- private static String password = "123456";
- private static Connection con;
- public static void main(String[] args) throws Exception {
- Class.forName("com.mysql.jdbc.Driver");
- con = DriverManager.getConnection(url, user, password);
- shangchuan();
- xiazai();
- }
- // 添加图片到数据库 test4 的 file 表
- public static void shangchuan() throws Exception {
- String sql = "insert into image(name,content) values(?,?)";
- PreparedStatement ptmt = con.prepareStatement(sql);
- ptmt.setString(1, "美女. jpg");
- InputStream is = null;
- is = new FileInputStream("D:\\Pictures\\3.jpg");
- ptmt.setBinaryStream(2, is, is.available());
- // 方法说明: PreparedStatement.setBinaryStream(int parameterIndex, InputStream x, int length)
- ptmt.execute();
- System.out.println("图片添加成功!");
- }
- // 从数据库中把图片下载至桌面
- public static void xiazai() throws Exception {
- String sql = "select content from image where id=3"; // 在我这里 3.jpg 是第三张图片
- Statement stmt = con.createStatement();
- ResultSet rs = stmt.executeQuery(sql); // 将查询结果给 rs
- if (rs.next()) {
- InputStream is = rs.getBinaryStream("fcontent");
- //.getBinaryStream():a Java input stream that delivers the database column value as a stream of uninterpreted bytes
- FileOutputStream fos = new FileOutputStream("C:\\Users\\Desktop\\ 美女. jpg");
- byte[] buffer = new byte[1024];
- int len = 0;
- while ((len = is.read(buffer)) != -1) {
- fos.write(buffer, 0, len); // 将数据库的图片写出
- }
- System.out.println("下载成功! 已下载至桌面, 请查看");
- } else {
- System.out.println("图片不存在!");
- }
- con.close();
- }
- }
来源: http://www.phperz.com/article/18/0206/358672.html