学生选课系统--管理员--删除功能

    学生选课系统--管理员--删除功能

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> &nbsp; <a href="destuServlet?id=<%=stu.getId()%>">删除</a>  </td>
        </tr>
<%
    }
        sqlSession.close();
%>
</table>
</body>
</html>
View Code点击查看代码

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();
    }
}
View Code点击查看代码

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>
View Code点击查看代码

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);
}
View Code点击查看代码

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> &nbsp; <a href="deteaServlet?id=<%=tea.getId()%>&teaname=<%=tea.getName()%>">删除</a>  </td>
    </tr>
        <%
    }
        sqlSession.close();
%>
</body>
</html>
View Code点击查看代码

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();
    }
}
View Code点击查看代码

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);
}
View Code点击查看代码

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>
View Code点击查看代码

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);
}
View Code点击查看代码

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>
View Code点击查看代码

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> &nbsp; <a href="declaServlet?id=<%=cla.getId()%>&xuan=<%=cla.getXuan()%>">删除</a>  </td>
    </tr>
        <%
    }
        sqlSession.close();
%>
</body>
</html>
View Code点击查看代码

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();
        }
    }
}
View Code点击查看代码

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);
}
View Code点击查看代码

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>
View Code点击查看代码

 

posted on 2022-11-13 23:04  201812  阅读(319)  评论(0)    收藏  举报