学习的内容: jsp实战,查、删、增、改。 ###查: <% //1创建DBHelper对象 DBHelper hp = new DBHelper(); //创一个 返回上下文路径 String pa = request.getContextPath(); //2拼写sql String sql = "select * from student"; //3执行方法,手抓异常 try { ResultSet rs = hp.executeQuery(sql); //4、显示结果 while(rs.next()){ //把id提出来更直观 String id = rs.getString("studentid"); out.print("<tr align=\"center\">"); out.print("<td>"+id+"</td>"); out.print("<td>"+rs.getString("studentname")+"</td>"); out.print("<td>"+rs.getInt("studentage")+"</td>"); out.print("<td>"+rs.getString("studentaddress")+"</td>"); //因为在jsp界面下,java代码需要" '引起来 out.print("<td><a href='"+pa+"/do/dodelete.jsp?id="+id+"'>删chu</a></td>"); out.print("<td><a href='"+pa+"/update.jsp?id="+id+"'>xiu改</a></td>"); out.print("</tr>"); out.flush(); } }catch (SQLException e){ e.printStackTrace(); }finally { //关闭资源 hp.close(); } %> ###删:创一个dodelete.jsp文件专门来执行删除操作。 <% //接受请求参数 String id = request.getParameter("id"); String pa = request.getContextPath(); String message = ""; // out.print(id); //创建 DB对象 DBHelper helper = new DBHelper(); //拼写sql语句 String sql1 = "delete from student where studentid=?"; //执行 sql int i = helper.executeUpdate(sql1,id); if (i>0){ message = "success!要节制啊!!"; }else{ message = "fales!!找找问题吧。"; } //返回结果 request.setAttribute("message",message); //跳转 请求跳转 request.getRequestDispatcher("/index.jsp").forward(request,response); %> ###增:需要新建一个增加属性元素的界面add.jsp和一个执行的doadd.jsp 增加元素的界面功能是 <%--${pageContext.request.contextPath}--%> <form action="do/doadd.jsp" method="post"> <%--下面的name 需要和doadd的getParameter的值对应--%> 学号:<input type="text" name="stid" value="2018041200"><br> 姓名:<input type="text" name="stn" placeholder="如“张三”、“王五”"><br> 年龄:<input type="text" name="sta" placeholder="int类型的"><br> 性别:<input type="text" name="stsex" value="男"><br> 地址:<input type="text" name="stadd" value="湖北"><br> 班级:<select name="cid"> <% //1.创建DBH对象 DBHelper hp = new DBHelper(); //2.拼写sql String sql = "select * from class"; //3.执行sql ResultSet rs = hp.executeQuery(sql); //4.显示结果 while(rs.next()){ //分开写可以更容易看 但是代码多 out.print("<option value='"+rs.getInt("classid")); out.print("'>"); out.print(rs.getString("classname")); out.print("</option>"); //可以直接写 // out.print("<option value='"+rs.getInt("classid")+"'>"+rs.getString("classname")+"</option>"); } //5.guan资源 hp.close(); %> </select> <input type="submit" value="添加"> </form> doadd.jsp的功能是执行添加操作 <% //1.设置字符编码 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //为跳转 定义一个message String message = ""; //2.huoqu请求参数 6个 String sI = request.getParameter("stid"); String sN = request.getParameter("stn"); String sA = request.getParameter("sta"); String sG = request.getParameter("stsex"); String sAdd = request.getParameter("stadd"); String classId = request.getParameter("cid"); //3.创建DBH DBHelper hp = new DBHelper(); //4.pinxie语句 一定要填完6个 String sql = "insert into student values(?,?,?,?,?,?)"; //5.执行(备注不能用感叹号...) //创建一个object数组 花括号中的数要按顺序写 Object [] ob = new Object[]{sI,sN,sA,sG,sAdd,classId}; int i = hp.executeUpdate(sql,ob); hp.close(); //6.跳转界面 if (i>0){ message="找找看,加了哪一个"; }else{ message="没添加,即添加失败"; } //用session来包装message session.setAttribute("message",message); //避免表单重复提交 利用重定向 // String w = request.getContextPath(); // out.print(w); response.sendRedirect(request.getContextPath()+"/index.jsp"); %> ###改:和增加的功能相似,需要显示和传递参数 <% //1.设置字符编码和定义数组 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //即使是int也可以用string来使用 String sn = ""; String si = ""; String sa = ""; String sg = ""; String sadd = ""; String cid = ""; //2.接收 请求参数 String id = request.getParameter("id"); //DBH DBHelper HP = new DBHelper(); String sql = "select * from student where studentid=?"; ResultSet rs = HP.executeQuery(sql,id); while(rs.next()){ //getString里面的是数据库中的属性名 sn = rs.getString("studentname"); sa=rs.getString("studentage"); sg=rs.getString("studentsex"); si =rs.getString("studentid"); sadd = rs.getString("studentaddress"); cid = rs.getString("classid"); } %> <form action="${pageContext.request.contextPath}/do/doupdate.jsp" method="post"> 学号:<input type="text" name="sid" value="<%=si%>" readonly="readonly"><br> 姓名:<input type="text" name="sname" value="<%=sn%>" ><br> 年龄:<input type="text" name="sage" value="<%=sa%>" ><br> 性别:<input type="text" name="sgender" value="<%=sg%>" ><br> 地址:<input type="text" name="saddress" value="<%=sadd%>" ><br> 班级:<select name="clid"> <% //写语句 String sql1 = "select * from class"; //执行语句 ResultSet rs1 = HP.executeQuery(sql1); //显示 while(rs1.next()){ if (cid.equals(rs1.getString("classid"))){ out.print("<option selected value='"+rs1.getInt("classid")+"'>"+rs1.getString("classname")+"</option>"); }else{ out.print("<option value='"+rs1.getInt("classid")+"'>"+rs1.getString("classname")+"</option>"); } } // while (rs1.next()){ // if(cid.equals(rs1.getString("classid"))){ // out.print("<option selected value='"+rs1.getInt("classid")+"'>"); // out.print(rs1.getString("classname")); // out.print("</option>"); // }else{ // out.print("<option value='"+rs1.getInt("classid")+"'>"); // out.print(rs1.getString("classname")); // out.print("</option>"); // } out.print("<option value='"+rs.getInt("classid")+"'>"+rs.getString("classname")+"</option>"); // } //关闭资源 HP.close(); %> </select> <input type="submit" value="确认修改"> doupdate.jsp的功能获取update.jsp的对应的name值 <% //1.设置字符编码 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); String message = ""; //2.获取六个请求参数 括号里面的是update也面中的input框和select选项中的name值 String si = request.getParameter("sid"); String sn = request.getParameter("sname"); String sa = request.getParameter("sage"); String sg = request.getParameter("sgender"); String sad = request.getParameter("saddress"); String ci = request.getParameter("clid"); //3、DBH DBHelper helper = new DBHelper(); //4、sql studentid在后面 就不用设置了 String sql = "update student set studentname=?,studentage=?,studentsex=?,studentaddress=?,classid=? where studentid= ?"; //5、执行sql 利用obj数组 赋的值和语句对应 Object [] obj = new Object[]{sn,sa,sg,sad,ci,si}; int i = helper.executeUpdate(sql,obj); //6 判断 并 跳转页面 if (i>0){ message="Nice!修改成功了"; }else{ message="oh my god~修改了个屁"; } //封装message session.setAttribute("message",message); //重定向 避免表单重复 url不改变导致报错 response.sendRedirect(request.getContextPath()+"/index.jsp"); %> 学习的问题: 很充实的一天,都运行出来了,渐渐有了信心。
学习day24
最新推荐文章于 2024-01-21 22:20:53 发布