JavaWeb(绑定&删除&修改&查询)
前言
嗨咯啊!我又来啦!上次我分享了新闻发布系统的登录以及验证码等,今天就来分享新闻发布系统的删改查。因为增加在上一篇文章中讲到了,这次就不讲了。
老规矩:上思维导图。
。。。。。好吧今天没做思维导图,还是看正文和目录了解吧。
提示:以下是本篇文章正文内容,下面案例可供参考
一、绑定
昨天我们插入两条一样的新闻,那么今天就要将数据绑定到页面。
<body><div id="header"> <div id="welcome">欢迎使用新闻管理系统!</div> <div id="nav"> <div id="logo"><img src="/Project01/images/logo.jpg" alt="新闻中国" /></div> <div id="a_b01"><img src="/Project01/images/a_b01.gif" alt="" /></div> </div></div><div id="admin_bar"> <div id="status">管理员: <%=request.getParameter("aa") %>      <a href="#">退出</a></div> <div id="channel"> </div></div><div id="main"> <div id="opt_list"> <ul> <li><a href="/Project01/news/add.jsp">添加新闻</a></li> <li><a href="/Project01/news/admin.jsp">编辑新闻</a></li> <li><a href="#">查找新闻</a></li> <li><a href="/Project01/news/zt.jsp">添加主题</a></li> <li><a href="/Project01/news/ztadmin.jsp">编辑主题</a></li> </ul> </div> <div id="opt_area"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <script language="javascript">function clickdel(){return confirm("删除请点击确认");}</script> <ul class="classlist"> <% //jdbcl连接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 news280 order by nid desc"; //获得执行对象 PreparedStatement ps = con.prepareStatement(sql); //获得结果集 ResultSet rs = ps.executeQuery(); //循环遍历 while(rs.next()){ %> <li><a href="/Project01/news/read.jsp?nid="><%=rs.getString(2) %></a> <span> 作者:<%=rs.getString(3) %>      <a href='/Project01/news/update.jsp?nid='>修改</a>      <a href='/Project01/news/dodelete.jsp?nid=' 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> </div></div><div id="site_link"> <a href="#">关于我们</a><span>|</span> <a href="#">Aboue Us</a><span>|</span> <a href="#">联系我们</a><span>|</span> <a href="#">广告服务</a><span>|</span> <a href="#">供稿服务</a><span>|</span> <a href="#">法律声明</a><span>|</span> <a href="#">招聘信息</a><span>|</span> <a href="#">网站地图</a><span>|</span> <a href="#">留言反馈</a> </div><div id="footer"> <p class="">24小时客户服务热线:010-68988888      <a href="#">常见问题解答</a>      新闻热线:010-627488888<br /> 文明办网文明上网举报电话:010-627488888      举报邮箱:<a href="#">jubao@jb-aptech.com.cn</a></p> <p class="copyright">Copyright © 1999-2009 News China gov, All Right Reserver<br /> 新闻中国 版权所有</p></div></body>
这段代码主要看中间部分,这里我们是连接数据库进行绑定数据。这里有两种方法。
1、java代码中嵌套html代码 2、 html代码中嵌套java代码
看得出我用的是那种方法吗?评论区留言告诉我吧。
效果图如下:
分割线-------------------------------------------------------------------------------------------------------------------------------
这就是绑定数据后的效果
二、查删改
1.查
代码如下:
<%//接收主界面传过来的值String nid = request.getParameter("nid");//思路:根据nid拿到起对应的信息//jdbcl连接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 * from news280 where nid="+nid; //获得执行对象 PreparedStatement ps = con.prepareStatement(sql); //获得结果集 ResultSet rs = ps.executeQuery(); //扩大作用域 String title=""; String author=""; String content=""; String addtime=""; //循环遍历 if(rs.next()){ //赋值 title=rs.getString(3); author=rs.getString(4); content=rs.getString(6); addtime=rs.getString(7); } //关闭资源 if(con!=null&&!con.isClosed()){ con.close(); } if(ps!=null){ ps.close(); } if(rs!=null){ rs.close(); }%>
这里只展示查询要用到的代码,其他的就不展示了,等下直接看效果
效果图:------------------------------------------------------------------------------------------------------------------
2.删
代码如下:
<% //定义sql语句 sql = "select * from 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)+"");//输送到页面 } else{ out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"");//输送到页面 } } //关闭资源 if(con!=null&&!con.isClosed()){ con.close(); } if(ps!=null){ ps.close(); } if(rs!=null){ rs.close(); } %>
另一个页面的
<%String nid = 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");String sql="delete from news280 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("/Project01/news/admin.jsp");}else{out.print("alert('删除失败');location.href='admin.jsp'");}%>
效果如下:
分割线-------------------------------------------------------------------------------------------------------------------------------
3.改
<% //定义sql语句 sql = "select * from 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)+"");//输送到页面 } else{ out.print("<option value='"+rs.getInt(1)+"'>"+rs.getString(2)+"");//输送到页面 } } //关闭资源 if(con!=null&&!con.isClosed()){ con.close(); } if(ps!=null){ ps.close(); } if(rs!=null){ rs.close(); } %>
另一页面代码:
<%//设置编码方式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 news280 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(ntid));//获得影响行数int n=ps.executeUpdate();//关闭资源if(con!=null&&!con.isClosed()){con.close();}if(ps!=null){ps.close();}//做判断if(n>0){//说明修改成功//新闻主界面response.sendRedirect("/Project01/news/admin.jsp");}else{//说明修改失败out.print("alert('修改失败');location.href='update.jsp?nid="+nid+"';");} %>
效果如下:
分割线-----------------------------------------------------------------------------------------------------------------------------
分割线------------------------------------------------------------------------------------------------------------------------------
就是这样
总结
今天的分享到此结束啦,下期预告:模糊查询,评论等。如果有什么不对的地方还请指正,谢谢啦。
我是九歌,一个正在成长的IT练习生,期待您的关注。