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

一,《绑定》

<%
    	//连接数据库
    	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 = "select * from topic order by tid";
        
        //获得执行对象
        PreparedStatement ps = con.prepareStatement(sql);
    	
        //获得结果集
        ResultSet rs = ps.executeQuery();
        
        //遍历结果集
        while(rs.next()){
	    %>
        	 <li><a href="/s4/news/read.jsp?nid=<%=rs.getInt(1) %>"><%= rs.getString(2) %></a>
      <span> 作者:<%=rs.getString(3) %>&#160;&#160;&#160;&#160;
       	<a href='/s4/news/update.jsp?nid=<%=rs.getInt(1) %>'>修改</a> &#160;&#160;&#160;&#160; 
       	<a href='/s4/news/dodelete.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();
      	}
        %>

二,《删除》

《代码演示》

删除属于增删改查中简单型的,主要在于sql语句不要出错啦

提示:定义sql语句后面+nid是因为要根据它拿下拉框的值

<%
		//设置编码方式
		request.setCharacterEncoding("utf-8");

		//接收表单提交过来的值
		String name = request.getParameter("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_news where nid=?"+nid;
		
		//获得执行对象
		PreparedStatement ps = con.prepareStatement(sql);
		
		//给占位符赋值
		ps.setInt(1,Integer.parseInt(name));
		
		
		//开始执行
		int n = ps.executeUpdate();//影响行数
		
		//关闭资源
		if(con!=null&&con.isClosed()){
			con.close();
		}
		if(ps!=null){
			ps.close();
		}
		
		//判断
		if(n>0){
			out.print("<script>alert('删除成功');location.href='admin.jsp'</script>");
		}
		else{
			out.print("<script>alert('删除失败');location.href='admin.jsp'</script>");
		}
%>

三,《修改》

《代码演示--修改验证界面绑值》

思路:跟绑定一致 接收主界面传过来的nid 根据nid拿到其原来的信息 并绑定值

<%
	//设置编码方式
	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");
    
    //定义sql语句
    String sql = "update tb_news set tid=?,ntitle=?,nauthor=?,nsummary=?,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 = 0;
    
    //关闭资源
    if(con!=null&&!con.isClosed()){
    	con.close();
    }
    if(ps!=null){
    	ps.close();
    }
    
    //做判断
    if(n>0){//说明修改成功
    	//新闻主界面
    	response.sendRedirect("/JW04/news/admin.jsp");
    }
    else{//说明修改失败
    	out.print("<script>alert('修改失败');location.href='update.jsp?nid="+nid+"';</script>");
    }
	%>

《修改内容》

<h1 id="opt_type"> 修改新闻: </h1>
    <form action="#" method="post">
      <p>
        <label> 主题 </label>
        <select name="ntid">
       <%
       //定义sql语句
       sql = "select * from topic order by tid";
       //获得执行对象
       ps=con.prepareStatement(sql);
       //获得结果集
       rs = ps.executeQuery();
       //循环遍历
       while(rs.next()){
    	   //做判断  如果是当前新闻的主题编号的话就让其选中
    	   if(rs.getInt(1)==tid){
    		   out.print("<option selectted='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();
     	}
       %>
        </select>
      </p>
      <p>
        <label> 标题 </label>
        <input name="ntitle" type="text" class="opt_input" />
      </p>
      <p>
        <label> 作者 </label>
        <input name="nauthor" type="text" class="opt_input" />
      </p>
      <p>
        <label> 摘要 </label>
        <textarea name="nsummary" cols="40" rows="3"></textarea>
      </p>
      <p>
        <label> 内容 </label>
        <textarea name="ncontent" cols="70" rows="10"></textarea>
      </p>
      <p>
        <label> 上传图片 </label>
        <input name="file" type="file" class="opt_input" />
      </p>
      <input name="action" type="hidden" value="addnews">
      <input type="submit" value="提交" class="opt_sub" />
      <input type="reset" value="重置" class="opt_sub" />
    </form>
  </div>
</div>

四,《查看》

《代码演示》

思路:根据id拿到其他对应的新闻信息=单个查询

<%
	//接收主页面传过来的值=nid
	String nid = request.getParameter("nid");
	
	//jdbc连接数据库查询所有的值
	  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 = "select * from topic order by tid";
      
      //获得执行对象
      PreparedStatement ps = con.prepareStatement(sql);
      
      //获得结果集
      ResultSet rs = ps.executeQuery();
		//扩大作用域
		String title="";
		String author="";
		String addtime="";
		String content="";
		
		//循环遍历
		if(rs.next()){
			title=rs.getString(3);
			author=rs.getString(4);
			addtime=rs.getString(6);
			content=rs.getString(8);
		}
		
		//关闭资源
		if(con!=null&&!con.isClosed()){
			con.close();
		}
		if(ps!=null){
			ps.close();
		}
		if(rs!=null){
			rs.close();
		}
%>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值