图书管理系统

图书管理系统共分为六个页面——登录页面、班级管理页面、学生管理页面、图书管理页面、借阅管理页面、用户管理页面。在该系统中,班级管理页面、学生管理页面、图书管理页面、借阅管理页面、用户管理页面等五个页面实现的功能类似,即获取全部班级(学生、图书、借阅、用户)信息,添加、修改、删除班级(学生、图书、借阅、用户),获取班级(学生、图书、借阅、用户)的详细信息。因此,这里以班级管理页面为例,实现这些功能。

一 登录页面

登录功能实现的基本思路为:根据账号查询数据库的用户,若不存在,则将报错;否则,将查询得到的数据与用户输入的数据进行校验,若不一致,则提示账号或密码错误;否则,登录成功,保存用户信息

其具体代码实现为:

  public Object login(@RequestBody User user, HttpServletRequest req){
        //1 根据账号查询数据库的用户,不存在报错
        User params=new User();
        params.setUsername(user.getUsername());
        //查询出来的用户
        User exist=userService.selectOne(params);
        //若查不到,则账号不存在
        if(exist==null){
            throw  new AppException("账号不存在");
        }
        //2 校验密码
        if(!exist.getPassword().equals(user.getPassword())){
            throw new AppException("账号或密码错误");
        }
        //3 登录成功,创建Session,保存信息
        HttpSession session=req.getSession();
        //保存用户信息:致键要与拦截器校验的键一
        session.setAttribute("user",exist);
        //统一响应会封装
        return null;
    }

二 班级管理页面

1 获取全部班级信息

获取全部班级信息功能,即查询数据库班级表中所有班级的信息并返回到前端。

    public Object query(Classes c){
        PageHelper.startPage(c);
        List classes=classesService.query();
        PageHelper.clearPage();
        return classes;
    }

注:在班级管理页面只需要查询班级表信息就可以,因此,可以直接调用已经存在的方法;而在学生管理页面、借阅信息管理页面等页面,需要查询多个表,因此不能直接调用已有的方法,需要自己实现sql语句。如学生管理页面其sql语句为

select
    s.id, s.student_name, s.student_no, s.id_card, s.student_email, s.classes_id, s.create_time,
    c.id c_id,
    c.classes_name c_classes_name,
    c.classes_graduate_year c_classes_graduate_year,
    c.classes_major c_classes_major,
    c.classes_desc c_classes_desc,
    c.create_time c_create_time
    from student s,classes c
    where s.classes_id=c.id
    
      and s.id=#{id}
    

并在.xml文件的中添加语句:

   

 2 添加班级

添加班级信息,即将用户输入的班级信息添加至数据库,此时可以直接调用已存在的方法,其他页面类似。

    public Object add(@RequestBody Classes classes){
        int n=classesService.add(classes);
        return null;
    }

3 修改班级信息

实现修改班级信息,首先获取修改班级的基本信息,在该信息的基础上,修改信息,并将数据库中的信息进行更新,其他页面类似。

/获取详细信息
   public Object queryById(Integer id){
        Classes classes=classesService.queryById(id);
        return classes;
    }
 //修改信息  
public Object update(@RequestBody Classes classes){
        int n=classesService.update(classes);
        return null;
    }

4 删除信息

删除班级信息,即将班级信息从数据库中删除,此时可以直接调用已存在的方法,其他页面类似。

public Object delete(@RequestParam List ids) {
        int n = classesService.delete(ids);
        return null;
    }

 注:删除信息时,只能删除没有学生的班级,否则会报错,删除其他信息也类似。其主要原因是:在建立数据表时,采用外键的形式,是严格模式。若想删除数据,可以改为级联模式,即删除班级数据,关联的学生数据也一起删除。

你可能感兴趣的:(前端,java,spring,boot,mybatis)