JavaWeb(绑定&删除&查看&修改)

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

一、绑定

数据库原有的数据:

我们要将以上的数据库中的内容绑定到我们的界面上,所以我们可以用嵌套的方式去完成,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) %>&#160;&#160;&#160;&#160;
       		<a href='/s5/news/update.jsp?nid=<%= rs.getInt(1)%>'>修改</a> &#160;&#160;&#160;&#160; 
       		<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]&nbsp; <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) %>&#160;&#160;&#160;&#160;
       		<a href='/s5/news/update.jsp?nid=<%= rs.getInt(1)%>'>修改</a>   
               &#160;&#160;&#160;&#160; 
       		<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) %>&#160;&#160;&#160;&#160;
       		<a href='/s5/news/update.jsp?nid=<%= rs.getInt(1)%>'>修改</a>   
               &#160;&#160;&#160;&#160; 
       		<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版权协议,转载请附上原文出处链接和本声明。