后台servlet:
package com;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetImage extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String URL = "jdbc:mysql://localhost:3306/test?user=root&password=root";
con = DriverManager.getConnection(URL);
Statement stmt = con.createStatement();
/*
* create a BLOB record in Mysql database.
* */
// PreparedStatement st = null;
// File file = new File("d:\\tom.jpg");
// InputStream in = new BufferedInputStream(new FileInputStream(file));
// String sql = "insert into image(Image) values(?)";
// st = con.prepareStatement(sql);
// st.setBinaryStream(1, in, (int) file.length());
// int i = st.executeUpdate();
// in.close();
/*
* Retrieve the image from database
* */
String sql = "select * from image where Id = 2";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
Blob b = rs.getBlob("Image");
long size = b.length();
byte[] bs = b.getBytes(1, (int) size);
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
outs.write(bs);
outs.flush();
rs.close();
}
}catch(Exception e){
e.printStackTrace();
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
web.xml中的配置信息:
<servlet>
<servlet-name>GetImage</servlet-name>
<servlet-class>com.GetImage</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GetImage</servlet-name>
<url-pattern>/GetImage.jsp</url-pattern>
</servlet-mapping>
前台jsp中的code:
<img src="GetImage.jsp">
SQL脚本:
CREATE TABLE `image` (
`Id` int(11) NOT NULL auto_increment,
`Image` blob,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
分享到:
相关推荐
国家开放大学 MySQL数据库应用 实验训练3 数据增删改操作
如何建立视图,如何可视化建立视图 介绍的很简单
SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库,而且它本身是完全免费的!!功能: 1、快速备份和恢复数据; 2、以GRID / TEXT 格式显示结果; 3、支持...
进入mysql数据库控制台, 如mysql -u root -p mysql>use 数据库 然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql B:使用mysqldump命令 mysqldump -u username -p dbname C:...
计算机二级mysql数据库程序设计练习题(二)全文共12页,当前为第1页。计算机二级mysql数据库程序设计练习题(二)全文共12页,当前为第1页。计算机二级mysql数据库程序设计练习题(二) 计算机二级mysql数据库程序设计...
1、可以直接编辑Mysql数据库中的表记录 2、支持将Access中的表导入到Mysql数据库中。 Access数据库的字段类型必须是“字符型、日期型、数值类型(整型、浮点型)”其它类型没测试过不知道是否支持。 导入之前,请先...
定时批量备份mysql数据库 保存详细的备份记录
VC 编写的一个用于MYSQL数据库连接的接口类,用ODBC在VC 中连接MYSQL数据库,接口部分代码如下: char* GetState();//服务器状态 char* GetServerInfo();//服务器信息 int GetProtocolInfo();//协议信息 ...
mysql/mariadb无需创建数据库,直接导入数据库的脚本:无需手动创建数据库,直接新建数据库+导入表结构+插入记录
索引用来快速地寻找那些具有特定值的记录,如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。 索引提供指针以指向...
易语言对MYSQL数据库提供了紧密的支持,通过易语言操作MYSQL成为一个很简单的事情,但是MYSQL图形管理界面的缺失,却导致直接对MYSQL数据库的编辑、察看很困难,虽然已经有很多公司或个人制作的...
CREATE USER会在系统本身的mysql数据库的user表中添加一个新记录。要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限或INSERT权限。如果账户已经存在,则出现错误。 ;【例6.3.1】添加两个新的用户,king...
如果列清单和VALUES清单都为空,则INSERT会创建一行,每个列都设置成默认值。; 插入语句最常用格式: INSERT INTO 表名(列名,...) VALUES (表达式, ...) ;【例】 向表Book中插入如下的一行数据: ? INSERT into ...
数据库和表的创建与管理 表的概念 课程目标 表的概念 表的基本概念 在MySQL中,表是数据库中最重要、最基本的操作对象,是存储数据的基本单位。一个表就是一个关系,表实质上就是行列的集合,每一行代表一条记录,每...
关系型数据库核心元素:数据库、数据表、记录、字段 客户端链接服务端 数据完整性 客户端Navicat使用 MySQL数据类型:数值型、decimal浮点型、字符串、枚举、时间 SQL-命令-数据库操作 SQL-命令-表结构的...
11、创建或删除数据库; 12、操纵数据库的各种权限:库、表、字段; 13、编辑 BLOB 类型的字段,支持 Bitmap/GIF/JPEG 格式; 14、输出数据表结构 / 数据为 SQL 脚本; 15、支持输入 / 输出数据为 CSV 文件; 16、...
6.2 创建一个数据库 abccs 9 6.3 选择你所创建的数据库 9 6.4 创建一个数据库表 9 6.5 显示表的结构 10 6.6 往表中加入记录 11 6.7 用文本方式将数据装入一个数据库表 11 7 检索数据 12 7.1 从数据库表中检索信息 12...
在SQL中,名词触发器指“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代 码。”(Wikipedia)说得简单一些,它是在一个...还将为你展示一个触发器在现实世界中的应用实例,并检验它对数据库记录的改变。