jsp与数据库的面对面交流

news/2024/5/17 16:08:06

jsp与数据库的面对面交流

前言:要完成数据的交互的一种方式就是jsp+jsp+数据库。下面就来演示一个用jsp展示数据库内的图片的小例子。

准备工作:

在数据库中新建一张存放图片的表。
新建两张jsp页面,分别是MyJsp1.jsp (处理连接) 和 MyJsp2.jsp (展示图片)。
实施:

建表

create table img (
id int auto_increment primary key,
name varchar(100) ,
image blob //blob是数据库中存放图片的类型
)
MyJsp1.jsp

<%@ page contentType="text/html; charset=gbk" %>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*"%>
<%@ page import="java.math.*"%>
<%String id = request.getParameter("id"); // 接收参数

                                                              //mysql连接 

Class.forName("com.mysql.jdbc.Driver").newInstance();
String URL="jdbc:mysql://localhost:3306/img?user=root&password=123";
Connection con = DriverManager.getConnection(URL);
System.out.println(con); //测试连接数据库是否成功

                                                             //oracle连接 

//String URL="jdbc:oracle:thin@localhost:1521:orcl2";
//user="system";
//password="manager";
//Connection con = DriverManager.getConnection(URL,user,password);
try{

                                                            // 准备语句执行对象

Statement stmt = con.createStatement();
String sql = " SELECT * FROM img WHERE id = "+ id;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
Blob b = rs.getBlob("image"); //获取表的image字段,即图片的二进制
long size = b.length(); //计算图片长度
byte[] bs = b.getBytes(1, (int)size); //放入数组
response.setContentType("image/jpg"); //设置给响应的页面一个的响应的内容格式为图片
OutputStream outs = response.getOutputStream(); // 使用输出流
outs.write(bs); //将数组写入输出流
outs.flush(); //刷新输出流
rs.close(); //关闭结果集
}
else {
rs.close();
}
}
finally{
con.close(); //关闭连接
out.clear();
out = pageContext.pushBody();
}
%>

MyJsp2.jsp

<body>

<img src="MyJsp1.jsp?id=1">

</body>


http://www.niftyadmin.cn/n/4136299.html

相关文章

python中 是什么符号_python中的各种符号

在这里所作的是将所有的 Python 符号和关键字列出来&#xff0c;这些都是值得掌握的重点。 关键字 anddelfromnotwhile as elifglobalor with assertelseifpassyieldbreakexceptimportprintclassexecinraisecontinuefinally…

c语言注释转换(c注释转换成c++注释)

代码思路&#xff1a; 分为四个模式 NUL_格式(开始读取注释)、c格式、c格式、END模式 (结束程序) input.c: 7种 情况 // 1.一般情况 /* int i 0; */ // 2.换行问题 /* int i 0; */int j 0; /* int i 0; */ int j 0; // 3.匹配问题 /*int i 0;/*xxxxx*/ // 4.多行注…

linux上安装jdk和jmeter的脚本

2019独角兽企业重金招聘Python工程师标准>>> 前几天应工作的要求&#xff0c;搞起了jmeter压力测试&#xff0c;因为暂时没有多余的linux机器&#xff0c;所以下面的所有操作都是在我本地安装的虚拟机上完成的&#xff0c;不过&#xff0c;并无区别。 主要实现的操作…

ppt图片丢失_如何制作一个人物介绍ppt?

作为一名专业的PPT设计师&#xff01;分享点纯干货&#xff01;人物排版一定离不开3种类型&#xff0c;逃不出11种PPT版式&#xff01;直接套用做出高大上的人物介绍&#xff01;文末有福利。在很多类型的 PPT 中&#xff0c;比如像企业介绍、融资路演&#xff0c;产品宣讲等&a…

【Cocos2d-x 粒子系统】火球用手指飞起来

程序&#xff1a; 创建球 sp1 CCSprite::create("ball.png");sp1->setPosition(ccp(10, visibleSize.height/2));this->addChild(sp1);setTouchEnabled(true);让球飞起来吧&#xff0c;创建个简单粒子&#xff0c;点哪飞到哪 void HelloWorld::ccTouchEnded(C…

c++中class 中的this指针

1.this指针的经典描述&#xff1a; 当你进入一个房子后&#xff0c;    你可以看见桌子、椅子、地板等&#xff0c;    但是房子你是看不到全貌了。    对于一个类的实例来说&#xff0c;    你可以看到它的成员函数、成员变量&#xff0c;    但是实例本身呢&#…

HDU 3177 Crixalis#39;s Equipment(贪婪)

主题链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3177 Problem DescriptionCrixalis - Sand King used to be a giant scorpion(蝎子) in the deserts of Kalimdor. Though hes a guardian of Lich King now, he keeps the living habit of a scorpion like li…

怎样用python打开文件_你真的会用python进行文件操作吗

本篇文章主要比较系统的介绍了python中文件操作&#xff0c;以及在在使用中需要注意的问题。 什么是文件 文件是系统存储区域的一个命名位置&#xff0c;用来存储一些信息&#xff0c;便于后续访问。能够在非易失性存储器中实现持续性存储&#xff0c;比如在硬盘上。当我们要读…