5. 删除数据

在删除数据的时候,需要指定删除条件,否则会把数据库表中的数据全部删除。在JSP页面中获得删除条件以后,调用JDBC的删除条件,把数据库表中的数据删除。删除操作的JSP页面代码如下:

delete.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.sql.*" %>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'delete.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<form action="" method="post">
<label>请输入要删除的部门id:</label><br/><br/>
<input type="text" name="d_id"/><br/><br/>
<input type="submit" value="删除"/>
</form>
</body>
<%
Connection con = null;
PreparedStatement ps = null;
// ResultSet rs = null;
try{
int d_id = 0;
d_id = Integer.parseInt(request.getParameter("d_id"));
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动创建成功!");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bank","root","1234");
System.out.println("数据库连接成功!");
String sql = "delete from dept where d_id=?";
ps = con.prepareStatement(sql);
ps.setInt(1,d_id);
ps.executeUpdate();
out.println("删除成功!");
}catch (Exception e){
e.printStackTrace();
}
%>
</html>

程序运行界面如下:

6. 分页显示

当数据量很多的时候,一页显示不完,这个时候就需要用到分页显示。分页显示数据的时候,如果当前的页是第一页,【上一页】超链接是不可单击状态;如果当前页是最后一页,【下一页】超链接是不可单击状态。分页显示的所有代码都写在JSP文件中,代码如下:

showAllByPage.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="com.cn.vo.*" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'showAllByPage.jsp' starting page</title>
</head>
<%
ResultSet rs = null;
PreparedStatement pstmt =null;
Connection conn = null;
List<DeptVo> list = new ArrayList<DeptVo>();
try {
String page1 = request.getParameter("page");//获得页面传递过来的page值赋值给page1
int page2 =1;
if(page1 != null){
//如果页面传递过来的page值存在,则把该page1赋值给page2变量
page2 = Integer.parseInt(page1);
}
request.setAttribute("page2", page2);
Class.forName("com.mysql.jdbc.Driver" );//创建数据库驱动
//连接数据库
conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/bank","root","1234");
//分页查询的SQL语句,每页显示5条记录
String sql = "select * from dept order by id desc limit ?,5";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, page2);
rs = pstmt.executeQuery();
while(rs.next()){
DeptVo deptVo = new DeptVo();
// 把各属性放入CarsVo对象中
deptVo.setId(rs.getString("id"));
deptVo.setAddress(rs.getString("address"));
deptVo.setD_name(rs.getString("d_name"));
deptVo.setEmpnumber(rs.getInt("empnumber"));
deptVo.setD_id(rs.getInt("d_id")); list.add(deptVo);//把CarsVo对象放入集合中
request.setAttribute("list", list);
}
int count =0;//声明一个count变量,用于存储记录数
int maxpage = 0;//声明一个maxpage变量,原来表示最大页数
Statement stmt = conn.createStatement();
String sql1 ="select count(*) from dept";//查询总记录数的SQL语句 rs = stmt.executeQuery(sql1); while (rs.next()) {
count = rs.getInt(1);//如果结果集存在,记录数初始化值为1
}
maxpage = (count+4)/5;//最大页数等于总记录条数加上4,再除以5
request.setAttribute("maxpage", maxpage);
} catch (SQLException e) {
e.printStackTrace();
}
%>
<body>
<table border="1" align="center" width="70%">
<tr>
<td>部门编号</td>
<td>部门地址</td>
<td>部门人数</td>
<td>部门名称</td>
<td>部门id</td>
</tr>
<c:forEach items="${list}" var="list">
<tr>
<td>${list.id }</td>
<td>${list.address }</td>
<td>${list.empnumber }</td>
<td>${list.d_name }</td>
<td>${list.d_id }</td>
</tr>
</c:forEach>
</table>
<div align="center"> <a href="?page=1">首页</a>
<c:if test="${page2 ==1}">上一页</c:if>
<c:if test="${page2 > 1}"><a href="?page=${page2 -1 }">上一页</a></c:if>
<c:if test="${page2 == maxpage}">下一页</c:if>
<c:if test="${page2 < maxpage}"><a href="?page=${page2 +1 }">下一页</a></c:if>
<a href="?page=${maxpage }">末页</a>
</div>
</body>
</html>

上述代码中,分页显示设置成每页显示5条记录,默认的页数为第一页,也就是说第一次访问时,看到的是第一页的数据,页面效果如下图所示:

JDBC结合JSP使用(2)的更多相关文章

  1. JDBC+Servlet+jsp(增删查改)

    先在mysql新增数据库和表先,把下面的几句代码复制去到mysql运行就可以创建成功了!  创建数据库 create database jdbc01 character set utf8 collat ...

  2. JDBC结合JSP使用(1)

    1. 添加数据 在jsp页面中添加数据,和在serv中添加数据相似.获得页面中提交的数据以后,把数据保存到数据库表中,JSP的代码如下: add.jsp <%@ page language=&q ...

  3. 实例: Java代码操作oracle数据库(JDBC+sevrlet+jsp+html)

    1, 注册页面 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.or ...

  4. JDBC+Servlet+JSP实现基本的增删改查(简易通讯录)

    前言: 最近学习JavaWeb的过程中,自己实践练手了几个小项目,目前已经上传到我的Github上https://github.com/Snailclimb/JavaWebProject.目前只上传了 ...

  5. 简单的员工管理系统(Mysql+jdbc+Servlet+JSP)

    员工管理系统 因为学业要求,需要完成一个过关检测,但是因为检测之前没有做好准备,且想到之前用mysql+jdbc+Struts2+bootstrap做成了一个ATM系统(主要有对数据的增删改查操作), ...

  6. jdbc+servlet+jsp实现登录验证

    基础知识准备:sql的增删改查. 新增:insert into 表名称(字段名.....)values(字段名....). 修改:update 表名称 set  字段名="新值" ...

  7. JDBC+Servlet+JSP的学生案例增删改查

    数据库信息传输到页面实现. 先进行学生信息页面展示: 接口IStudentDao public interface IStudentDao { /** * 保存操作 * @param stu 学生对象 ...

  8. JSP简单访问数据库

    Java代码 public class DBHelper { private String driverName; private String url; private String user; p ...

  9. Java web开发,在一个jsp里放太多java代码的后果,摘自 java web轻量级开发面试教程

    现要做一个简单的登录页面,如果用户通过验证,会显示Welcome用户名的欢迎词,反之则返回登录页面让用户再次输入 这部分的完整代码是JSPDemo项目里的login.jsp,下面来分析一下关键代码. ...

随机推荐

  1. loadrunner——常见函数

    loadrunner——常见函数 分类: LoadRunner 2012-04-11 20:41 703人阅读 评论(0) 收藏 举报 loadrunnersearchweb服务器脚本stringwe ...

  2. HDU - 4465 期望 + 取log优化

    思路:这个求期望的公式很容易得到,但是在算的时候我们会遇到一个问题,就是组合数太大了根本存不下, 这时候就可以在计算的时候都取log,最后复原...  以前没遇到过.. #include<bit ...

  3. 《Android源码设计模式》----面向对象六大原则

    1.单一职责原则 Single Respoonsibility Principle(SRP) --封装 2.开闭原则 Open Close Principle(OCP)--对扩展开放,对修改封闭 3. ...

  4. Xshell拖拽上传文件插件

    lrzsz是一款在linux里可代替ftp上传和下载的程序.在linux中支持直接拖拽上传的插件:同时也支持rz和sz进行命令上传和下载. 插件安装 yum -y install lrzsz 上传(r ...

  5. keystone 认证深度研究分析

    一.Keystone Token深度概述 Keystone作为OpenStack项目基础认证模块,目前支持的token类型分别是uuid.pkiz.pki.fernet. 首先,简要叙述一下这四种类型 ...

  6. BZOJ.3110.[ZJOI2013]K大数查询(整体二分 树状数组/线段树)

    题目链接 BZOJ 洛谷 整体二分求的是第K小(利用树状数组).求第K大可以转为求第\(n-K+1\)小,但是这样好像得求一个\(n\). 注意到所有数的绝对值\(\leq N\),将所有数的大小关系 ...

  7. BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3483 [题目大意] 给出一些串,同时给出m对前缀后缀,询问有多少串满足给出的前缀后缀模 ...

  8. 【HDU】3401:Trade【单调队列优化DP】

    Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  9. pygame系列_箭刺Elephant游戏_源码下载

    这个游戏原名为:Chimp,我们可以到: http://www.pygame.org/docs/tut/chimp/ChimpLineByLine.html 获取到源码和详细的源码讲解 下面是我对游戏 ...

  10. IOS webView学习

    本文简单介绍下在IOS中,webView的基本用法,也顺便强化下自己的基础知识----天明少羽爬楼梯 一.加载外部HTML 显示webView 报错:NSURLSession/NSURLConnect ...