前言:今日的知识点还是接着昨天的案例来一一实现数据删除、绑定、查看、修改操作的
一、绑定
数据库原有的数据:

我们要将以上的数据库中的内容绑定到我们的界面上,所以我们可以用嵌套的方式去完成,HTML代码套入Java代码
代码块:
<ul class="classlist">
<%
//jdbc连接Oracle查询所有的新闻 : id 新闻标题 作者
String CNAME="oracle.jdbc.driver.OracleDriver";
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
//加载驱动
Class.forName(CNAME);
//创建驱动
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
String sql="select nid,ntitle,nauthor from tb_fb order by nid desc";
//获取执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
//循环遍历
while(rs.next()){
%>
<li><a href="/s5/news/read.jsp?nid=<%= rs.getInt(1)%>"><%= rs.getString(2) %></a>
<span> 作者:<%=rs.getString(3) %>    
<a href='/s5/news/update.jsp?nid=<%= rs.getInt(1)%>'>修改</a>     
<a href='/s5/newsdodelete.jsp?nid=<%= rs.getInt(1)%>' onclick='return clickdel()'>删除</a>
</span>
</li>
<%
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
<li class='space'></li>
<p align="right"> 当前页数:[1/3] <a href="#">下一页</a> <a href="#">末页</a> </p>
</ul>效果图:

·二、删除
思路:拿到该新闻的id,然后再进行删除
主界面代码块:
<li>
<a href="/s5/news/read.jsp?nid=<%= rs.getInt(1)%>"><%= rs.getString(2) %></a>
<span> 作者:<%=rs.getString(3) %>    
<a href='/s5/news/update.jsp?nid=<%= rs.getInt(1)%>'>修改</a>
    
<a href='/s5/news/dodelete.jsp?nid=<%= rs.getInt(1)%>' onclick='return
clickdel()'>删除</a>
</span>
</li>删除界面代码块:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%
//接收nid 根据键拿到值
String nid=request.getParameter("nid");
//jdbc删除 delete from news280 where nid=?
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME="oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
String sql="delete from tb_fb where nid="+nid;
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//开始执行
int n=ps.executeUpdate();//影响行数
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
//做判断
if(n>0){
//删除成功
response.sendRedirect("/s5/news/admin.jsp");
}
else{
//删除失败
out.print("<srcipt>alert('删除失败');location.href='admin.jsp'</srcipt>");
}
%>效果图:
三、查看&修改
主界面代码块:
<li>
<a href="/s5/news/read.jsp?nid=<%= rs.getInt(1)%>"><%= rs.getString(2) %></a>
<span> 作者:<%=rs.getString(3) %>    
<a href='/s5/news/update.jsp?nid=<%= rs.getInt(1)%>'>修改</a>
    
<a href='/s5/news/dodelete.jsp?nid=<%= rs.getInt(1)%>' onclick='return
clickdel()'>删除</a>
</span>
</li>将新闻id传过去,下一步就和绑定数据一样
修改界面代码:
<%
//思路:跟着阅读一致 接收主界面传过来的nid 根据nid拿到其原来的新闻信息 并绑定值
String nid=request.getParameter("nid");
String CNAME="oracle.jdbc.driver.OracleDriver";
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
//加载驱动
Class.forName(CNAME);
//创建驱动
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
String sql="select * from tb_fb where nid="+nid;
//获取执行对象
PreparedStatement ps=con.prepareStatement(sql);
//获得结果集
ResultSet rs=ps.executeQuery();
//扩大作用域
int tid=0;
String title="";//标题
String author="";//作者
String content="";//内容
String summary="";//时间
//循环便利
while(rs.next()){
//赋值
tid=rs.getInt(2);
title=rs.getString(3);
author=rs.getString(4);
summary=rs.getString(5);
content=rs.getString(6);
}
%>
<form action="doupdate.jsp" method="post">
<p>
<label> 主题 </label>
<select name="ntid">
<%
//定义sql语句
sql="select * from tb_zt order by tid";
//获取执行对象
ps=con.prepareStatement(sql);
//获得结果集
rs=ps.executeQuery();
//循环便利
while(rs.next()){
//做判断 如果是当前新闻的主题编号的话就让其选中
if(rs.getInt(1)==tid){
out.print("<option selected='selected' value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面
}
else{
out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"</option>");//输送到页面
}
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
<!-- <option value="1">哈哈</option> -->
<!-- <option value="2" selected="selected">嘿嘿</option> -->
</select>
</p>
<p>
<label> 标题 </label>
<input name="ntitle" type="text" value="<%=title %>" class="opt_input" />
</p>
<p>
<label> 作者 </label>
<input name="nauthor" type="text" value="<%=author %>" class="opt_input" />
</p>
<p>
<label> 摘要 </label>
<textarea name="nsummary" cols="40" rows="3"><%=summary %></textarea>
</p>
<p>
<label> 内容 </label>
<textarea name="ncontent" cols="70" rows="10"><%=content %></textarea>
</p>
<p>
<label> 上传图片 </label>
<input name="file" type="file" class="opt_input" />
</p>
<!-- 隐藏域(隐藏的区域)会随着表单的提交而提交 用来传值 -->
<input name="nid" type="hidden" value="<%=nid%>">
<input type="submit" value="提交" class="opt_sub" />
<input type="reset" value="重置" class="opt_sub" />
</form>修改底层代码块:
<%
//设置编码方式
request.setCharacterEncoding("utf-8");
//接收表单提交过来的值
String nid=request.getParameter("nid");//假设有
String ntid=request.getParameter("ntid");
String ntitle=request.getParameter("ntitle");
String nauthor=request.getParameter("nauthor");
String nsummary=request.getParameter("nsummary");
String ncontent=request.getParameter("ncontent");
String naddtime=new Date().toLocaleString();//取系统当前时间
//实现修改
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME="oracle.jdbc.driver.OracleDriver";
Class.forName(CNAME);
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
String sql="update tb_fb set tid=?,ntitle=?,nauthor=?,nsummary=?,ncontent=?,naddtime=? where nid=?";
PreparedStatement ps=con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, Integer.parseInt(ntid));
ps.setString(2, ntitle);
ps.setString(3, nauthor);
ps.setString(4, nsummary);
ps.setString(5, ncontent);
ps.setString(6, naddtime);
ps.setInt(7, Integer.parseInt(nid));
//获得影响行数
int n=ps.executeUpdate();
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
//做判断
if(n>0){//说明发表成功
//新闻主界面
response.sendRedirect("/s5/news/admin.jsp");
}
else{//说明修改失败
out.print("<script>alert('修改失败');location.href='update.jsp?nid="+nid+"';</script>");
}
%>效果:

删除和查看的修改都在一起了
今日的分享就到这里了 下次再见
版权声明:本文为m0_62604616原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
删除和查看的修改都在一起了