jsp与数据库的面对面交流


jsp与数据库的面对面交流


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


准备工作:

  1. 在数据库中新建一张存放图片的表。
  2. 新建两张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>



































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值