jsp与数据库的面对面交换

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>

    原文作者:Mshu
    原文地址: https://segmentfault.com/a/1190000009510319
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞