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

一、查看:

//接收从主界面admin.jsp传递过来的nid
    String nid=request.getParameter("nid");
    //思路:根据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="select * from tb_xw where nid="+nid;//单个查询
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
    //获得结果集
    ResultSet rs=ps.executeQuery();
    //扩大作用域
    String nbt="";//标题
    String nzz="";//作者
    String nsj="";//时间
    String nnr="";//内容
    //遍历结果集
    if(rs.next()){
    	nbt=rs.getString(3);
    	nzz=rs.getString(4);
    	nnr=rs.getString(6);
    	nsj=rs.getString(7);
    	
    }
  //关闭资源
    if(con!=null&&!con.isClosed()){
  	  con.close();
    }
    if(ps!=null){
  	  ps.close();
    }
    if(rs!=null){
  	  rs.close();
    }

如图:

 地址栏传参: ?键=值&键=值

根据nid拿到其对应的信息,获取数据库的内容赋值过来

 二、绑定下拉框:

    <%
		    //jdbc连接Oracle 查询主题表的信息:主题编号 主题名称
		    //两个字符串
		    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 tb_zt order by tid";
		    //获得执行对象
		    PreparedStatement ps=con.prepareStatement(sql);
		    //获得结果集
		    ResultSet rs=ps.executeQuery();
		    //遍历结果集
		    while(rs.next()){
    
    %>
          <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();
          }
      
      %>

获取数据库表的第一列和第二列赋值过去

这里面的值是和数据库里的一样了! 

三、删除:

 //接收nid   request
    String nid=request.getParameter("nid");
    //jdbc根据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_xw 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("/q4/news/admin.jsp");
    }else{
    	//说明删除失败
    	out.print("<script>alert('删除失败');location.href='admin.jsp';</script>");
    }

获取地址栏传过来的id,进行删除

 

四、修改:

<%
//接收从主界面admin.jsp传递过来的nid
    String nid=request.getParameter("nid");
    //思路:根据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="select * from tb_xw where nid="+nid;//单个查询
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
    //获得结果集
    ResultSet rs=ps.executeQuery();
    //扩大作用域
    int tid=0;//主题编号
    String nbt="";//标题
    String nzz="";//作者
    String nzy="";//摘要
    String nnr="";//内容
    //遍历结果集
    if(rs.next()){
    	tid=rs.getInt(2);
    	nbt=rs.getString(3);
    	nzz=rs.getString(4);
    	nzy=rs.getString(5);
    	nnr=rs.getString(6);
    	
    }
%>


<%
		    //jdbc连接Oracle 查询主题表的信息:主题编号 主题名称
		    
		    //定义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 
 value='"+rs.getInt(1)+"'selected='selected'>"+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();
          }
      
      %>

获取信息然后再进行修改

 

这里传参用的是:<!-- 隐藏域传值 会随着表单的提交而提交 后期根据name值取value值 -->
      <input name="nid" type="hidden" value="<%=nid %>">

<%
   //设置编码方式
   request.setCharacterEncoding("utf-8");
   //接收表单的值 根据name取value值
   String nid=request.getParameter("nid");//没传值
   String nzt=request.getParameter("ntid");
   String nbt=request.getParameter("ntitle");
   String nzz=request.getParameter("nauthor");
   String nzy=request.getParameter("nsummary");
   String nnr=request.getParameter("ncontent");
   String nsj=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_xw set tid=?,nbt=?,nzz=?,nzy=?,nnr=?,ntp=? where nid=?";
  //获得执行对象
   PreparedStatement ps=con.prepareStatement(sql);
 
  //要给占位符赋值 7个
  
  ps.setInt(1, Integer.parseInt(nzt));//String -->int
  ps.setString(2, nbt);
  ps.setString(3, nzz);
  ps.setString(4, nzy);
  ps.setString(5, nnr);
  ps.setString(6, nsj);
  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("/q4/news/admin.jsp");
  }else{
	  //修改失败
	  out.print("<script>alert('修改失败');location.href='update.jsp?nid="+nid+"';</script>");
  }
  



%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值