学生选课系统--管理员--删除功能
学生选课系统--管理员--删除功能
1.删除学生功能,比较简单,直接用之前写的查看学生信息的时候,有x修改和删除超链接,直接点击就可以删除(超链接删除)
1.selectstu.jsp(此页面用于浏览全部学生信息 可以选择删除、修改按钮对信息进行处理)

<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.StuMapper" %> <%@ page import="com.xxxx.entity.Stu" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/14 Time: 23:41 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>selectstu.jsp</title> </head> <%--浏览所有学生,方便选择修改信息或者删除信息,超链接--%> <body> <table align="center" border="1" width="800"> <tr> <td>学生学号</td><td>学生姓名</td><td>性别</td><td>年龄</td><td>专业</td><td>班级</td><td></td> </tr> <% SqlSession sqlSession = GetSqlSession.CreateSqlSession(); StuMapper stuMapper = sqlSession.getMapper(StuMapper.class); Stu[] stus=stuMapper.selectAll(); for (Stu stu:stus) { %> <tr> <td><%=stu.getId()%></td><td><%=stu.getName()%></td><td><%=stu.getSex()%></td><td><%=stu.getAge()%></td><td><%=stu.getPro()%></td><td><%=stu.getCla()%></td> <td><a href="upstu.jsp?id=<%=stu.getId()%>">修改</a> <a href="destuServlet?id=<%=stu.getId()%>">删除</a> </td> </tr> <% } sqlSession.close(); %> </table> </body> </html>
2.destuServlet.java(用于对信息进行删除)

package com.xxxx.servlet; import com.xxxx.mapper.StuMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/destuServlet") public class destuServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String id=request.getParameter("id"); SqlSession sqlSession = GetSqlSession.CreateSqlSession(); StuMapper stuMapper = sqlSession.getMapper(StuMapper.class); stuMapper.deleteById(id); response.getWriter().write("删除成功"); response.getWriter().close(); sqlSession.close(); } }
3.StuMapper.xml(Mapper.xml配置文件)

<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.StuMapper"> <insert id="add"> insert into stu01(name,sex,age,pro,cla) values (#{name},#{sex},#{age},#{pro},#{cla}); </insert> <update id="update"> update stu01 set name=#{name},sex=#{sex},age=#{age},pro=#{pro},cla=#{cla} where id=#{id}; </update> <delete id="deleteById"> delete from stu01 where id=#{id}; </delete> <select id="selectAll" resultType="com.xxxx.entity.Stu"> select * from stu01; </select> <select id="selectByid" resultType="com.xxxx.entity.Stu"> select * from stu01 where id=#{id}; </select> </mapper>
4.StuMapper.java(Mapper接口类)

package com.xxxx.mapper; import com.xxxx.entity.Stu; public interface StuMapper { void add(Stu stu); void update(Stu stu); Stu[] selectAll(); Stu selectByid(int id); void deleteById(String id); }
2.删除教师功能,关键在于如果教师承担了教学任务,不可删除
先把要删除的老师的id信息和teaname信息通过超链接传递到Servlet中,多传一个teaname值方便在cla里查找,因为cla中查找的是teaname,不是id
查表cla(ClaMapper)如果这个教师有教学任务,就不可以删除,否则可以删除(TeaMapper)
这里就体现了起名的重要性,起名不太规范的话,编写程序会很麻烦的,比如说我的sql里面教师名字起名为tea而不是teaname,容易在xml里面写错
1.selecttea.jsp(可以点击删除的超链接,把teaname和id传到Servlet中)

<%@ page import="com.xxxx.entity.Tea" %> <%@ page import="com.xxxx.mapper.TeaMapper" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="org.apache.ibatis.session.SqlSession" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/15 Time: 10:19 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>selecttea.jsp</title> </head> <%--浏览所有教师,方便选择修改信息或者删除信息,超链接--%> <body> <table align="center" border="1" width="800"> <tr> <td>工号</td><td>姓名</td><td>职位</td><td>所属院</td><td></td> </tr> <% SqlSession sqlSession = GetSqlSession.CreateSqlSession(); TeaMapper teaMapper = sqlSession.getMapper(TeaMapper.class); Tea[] teas=teaMapper.selectAll(); for (Tea tea:teas) { %> <tr> <td><%=tea.getId()%></td><td><%=tea.getName()%></td><td><%=tea.getPro()%></td><td><%=tea.getYuan()%></td> <td><a href="uptea.jsp?id=<%=tea.getId()%>">修改</a> <a href="deteaServlet?id=<%=tea.getId()%>&teaname=<%=tea.getName()%>">删除</a> </td> </tr> <% } sqlSession.close(); %> </body> </html>
2.deteaServlet(对教师信息进行删除,如果该教师承担教学任务就不可以删除)

package com.xxxx.servlet; import com.xxxx.entity.Cla; import com.xxxx.mapper.ClaMapper; import com.xxxx.mapper.StuMapper; import com.xxxx.mapper.TeaMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/deteaServlet") public class deteaServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String id=request.getParameter("id"); String teaname=request.getParameter("teaname");//这个需要多传一个name值 SqlSession sqlSession = GetSqlSession.CreateSqlSession(); //先查看这个教师是否承担教学任务cla ClaMapper claMapper=sqlSession.getMapper(ClaMapper.class); Cla cla=claMapper.selectByTeaname(teaname);//如果cla不等于空,就说明承担了课程 if(cla==null){//为空 TeaMapper stuMapper = sqlSession.getMapper(TeaMapper.class); stuMapper.deleteById(id); response.getWriter().write("删除成功"); response.getWriter().close(); } else{ response.getWriter().write("删除失败,该教师承担了课程任务"); response.getWriter().close(); } sqlSession.close(); } }
3,ClaMapper.java

package com.xxxx.mapper; import com.xxxx.entity.Cla; public interface ClaMapper { void add(Cla cla); Cla[] selectAll(); void update(Cla cla); Cla selectByTeaname(String teaname); }
4.ClaMapper.xml

<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.ClaMapper"> <insert id="add"> insert into cla (name,time,ci,yuan,tea,teaid,people) values (#{name},#{time},#{ci},#{yuan},#{tea},#{teaid},#{people}); </insert> <update id="update"> update cla set time=#{time},ci=#{ci},yuan=#{yuan},tea=#{tea},teaid=#{teaid},people=#{people} where id=#{id}; </update> <select id="selectAll" resultType="com.xxxx.entity.Cla"> select * from cla; </select> <select id="selectByTeaname" resultType="com.xxxx.entity.Cla"> select * from cla where tea=#{teaname}; </select> </mapper>
5.TeaMapper.java

package com.xxxx.mapper; import com.xxxx.entity.Tea; import org.apache.ibatis.annotations.Param; public interface TeaMapper { void add(Tea tea); Tea[] selectAll(); void updateByeid(@Param("tea") Tea tea, @Param("eid") int eid); Tea selectByid(int id); void deleteById(String id); }
6.TeaMapper.xml

<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.TeaMapper"> <insert id="add"> insert into tea01 (id,name,pro,yuan) values (#{id},#{name},#{pro},#{yuan}); </insert> <delete id="deleteById"> delete from tea01 where id=#{id}; </delete> <select id="selectAll" resultType="com.xxxx.entity.Tea"> select * from tea01; </select> <select id="selectByid" resultType="com.xxxx.entity.Tea"> select * from tea01 where id=#{id}; </select> <update id="updateByeid"> update tea01 set id=#{tea.id},name=#{tea.name},pro=#{tea.pro},yuan=#{tea.yuan} where id=#{eid}; </update> </mapper>
3.删除课程功能
如果有学生选择了改课程,则不可以删除,所以需要传递的是课程的id(方便删除),课程的人数的已选人数,,,,但是到这里才发现,,在任何一个表都没有这个选课的相关数据.....课表与老师挂钩了,但是还没和学生挂钩...我选择在学生表中添加所选课程的id,在课程表中添加已选人数
1.selectcla.jsp(查询到全部课程信息,超链接实现将id,和已选人数传到Servlet中)

<%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.mapper.ClaMapper" %> <%@ page import="com.xxxx.entity.Cla" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/15 Time: 10:19 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>selectcla.jsp</title> </head> <%--浏览所有课程信息,方便选择修改信息或者删除信息,超链接--%> <body> <table align="center" border="1" width="800"> <tr> <td>课程编号</td><td>课程名称</td><td>开课时间</td><td>上课时间</td><td>开课院系</td> <td>任课老师</td><td>老师工号</td><td>限制人数</td><td></td> </tr> <% SqlSession sqlSession = GetSqlSession.CreateSqlSession(); ClaMapper claMapper = sqlSession.getMapper(ClaMapper.class); Cla[] clas=claMapper.selectAll(); for (Cla cla:clas) { %> <tr> <td><%=cla.getId()%></td><td><%=cla.getName()%></td><td><%=cla.getTime()%></td><td><%=cla.getCi()%></td> <td><%=cla.getYuan()%></td><td><%=cla.getTea()%></td><td><%=cla.getTeaid()%></td><td><%=cla.getPeople()%></td> <td><a href="upcla.jsp?id=<%=cla.getId()%>&name=<%=cla.getName()%>">修改</a> <a href="declaServlet?id=<%=cla.getId()%>&xuan=<%=cla.getXuan()%>">删除</a> </td> </tr> <% } sqlSession.close(); %> </body> </html>
2.declaServlet.java

package com.xxxx.servlet; import com.xxxx.mapper.ClaMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/declaServlet") public class declaServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); int id= Integer.parseInt(request.getParameter("id"));//课程id int xuan= Integer.parseInt(request.getParameter("xuan"));//已选人数 if(xuan!=0){ response.getWriter().write("该课程已经被选择,无法删除"); response.getWriter().close(); } else{ SqlSession sqlSession = GetSqlSession.CreateSqlSession(); ClaMapper claMapper = sqlSession.getMapper(ClaMapper.class); claMapper.deleteById(id); response.getWriter().write("课程删除成功"); response.getWriter().close(); sqlSession.close(); } } }
3.ClaMapper.java

package com.xxxx.mapper; import com.xxxx.entity.Cla; public interface ClaMapper { void add(Cla cla); Cla[] selectAll(); void update(Cla cla); Cla selectByTeaname(String teaname); void deleteById(int id); }
4.ClaMapper.xml

<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.ClaMapper"> <insert id="add"> insert into cla (name,time,ci,yuan,tea,teaid,people) values (#{name},#{time},#{ci},#{yuan},#{tea},#{teaid},#{people}); </insert> <update id="update"> update cla set time=#{time},ci=#{ci},yuan=#{yuan},tea=#{tea},teaid=#{teaid},people=#{people} where id=#{id}; </update> <delete id="deleteById"> delete from cla where id=#{id}; </delete> <select id="selectAll" resultType="com.xxxx.entity.Cla"> select * from cla; </select> <select id="selectByTeaname" resultType="com.xxxx.entity.Cla"> select * from cla where tea=#{teaname}; </select> </mapper>