Java+mysql本地图片上传数据库及下载示例
作者:Ro_kin 发布时间:2023-07-23 19:49:13
标签:java,上传文件
做一个将本地图片上传到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://blog.csdn.net/ro_kin/article/details/54705782


猜你喜欢
- 引言在 Linux 服务器上,磁盘空间的使用情况是一个非常重要的指标。如果服务器上的磁盘空间不足,可能会导致服务器崩溃,影响网站的正常运行。
- 主要内容所谓RPC,是远程过程调用(Remote Procedure Call)的简写,网上解释很多,简单来说,就是在当前进程调用其他进程的
- 项目中我们可能会碰到导出Excel文件的需求,一般后台管理系统中居多,将table中展示的数据导出保存到本地。当然我们也可以通过一些处理来修
- 在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度、高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一
- 常见的双倍边距类问题都遇到过,但很少遇到这种有意思的,所以记录一下。这个BUG是发生在Standards模式下(就是包含XHTML或者HTM
- 大多数情况下,我们使用 webpack来打包单页应用程序,这个时候只需要配置一个入口,一个模板文件,但也不尽是如此,有时候也会碰到多页面的项
- 不论是打开网页或者爬取一些资料的时候,我们想要的是计算机能在最短的时间内运行出结果,不然等待的时间过长会影响下一步工作的计划。这时候我们可以
- 有些时候我在们需要的用正则提取出html中某一个部分的文字内容,如图:获取dd部分的html文档,我们要通过它的一个属性去确定他的位置才可以
- 1.SocketServer模块编写的TCP服务器端代码Socketserver原理图服务端:import SocketServer &nb
- 如果你想通过http://127.0.0.1:8000/看网站根目录你将看到一个404错误消息。Django不会增加任何东西在网站根目录,在
- NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes
- 兄弟组件之间的通信同样是在项目中经常会遇到的组件间的通信问题之一, 这种问题的最根本方法就是: 把兄弟组件内部的变量提升到一个中央仓库。借助
- 前言这篇文章主要是就在公司实习的时候,对SQL优化工作作出的一些整理。在公司实习的时候,导师分配了SQL慢查询优化的任务,任务是这样的:每周
- 随着新技术的不断发展,JavaScript已经不再仅仅只是一个网络语言。现在,我们能够看到很多使用JavaScript来构建基于本地浏览器的
- 代码如下:<title>雷锋|优酷-专辑 采集程序</title></head> &
- 本文实例分析了JS重载实现方法。分享给大家供大家参考,具体如下:重载是面向对象语言里很重要的一个特性,JS中没有真正的重载,是模拟出来的(因
- PHP信息函数包含的一些函数概念总结如下。PHP信息函数之getenv适用版本:PHP3, PHP4函数功能:取得环境变量数值。函数语法:s
- <asp:ImageButton ID="BtnMailaddress" runat="server&q
- 作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇
- 效果如下图:当点击问题时显示下面的回复内容。script type="text/javascript"> onlo