毕业作品网站

 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopinvvp QQ:1015083682   

基于SSM架构的宠物救助管理系统的设计与实现 设计概述

文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

基于SSM架构的宠物救助管理系统的设计与实现

一、 需求概述

许多宠物救助站的信息管理仍然采用传统的人工管理方式。在这种管理模式下,进行各种信息管理工作(例如信息审核校对、数据统计和实时查询等)需要一些必要的人工操作程序步骤,如人工制表、人工信息录入、人工校对和人工查询等。然而,随着领养信息的不断增加和更新,宠物救助站工作人员的工作量将会越来越大,因此传统的信息管理方式已经无法满足现代科学管理体系的需求。

二、 详细设计

1、 数据库设计(和概要设计中的各模块信息对应上)

▲E-R图设计

在进行数据库设计前,需要明确宠物领养信息管理系统中有哪些实体对象,根据实体对象之间的关联进行数据库设计。根据需求分析可知主要实体有:用户、领养、宠物、公告,对应设计E-R图具体如下。

(1)用户E-R图如图所示。

用户E-R图

(2)领养信息E-R图如图所示。

领养信息E-R图

(3)宠物E-R图如图所示。

宠物E-R图

(4)公告E-R图如图所示。

公告E-R图

▲表结构设计

根据E-R图设计数据表,然后可以根据表结构编写SQL语句进行建表或者使用Navicat等数据库可视化软件进行建表。

(1) 用户表(t_members)主要用来维护用户相关信息,表结构如表1所示。

表1用户表结构

序号

字段名

数据类型

主键

长度

说明

1

id

bigint

20

主键

2

username

varchar

50

用户名

3

password

varchar

50

密码

4

real_name

varchar

50

姓名

5

user_sex

varchar

50

性别

6

user_phone

varchar

50

手机

7

user_text

varchar

50

备注

8

user_type

varchar

50

类型

(2)领养信息表(t_linyang)主要用来维护和领养相关的信息,表结构如表12所示。

表2领养信息表设计

(2) 宠物表(t_pet)主要主要用来维护宠物相关的信息,表结构如表3所示。

3宠物表结构

(4) 公告表(t_notice)主要用户来维护公告相关的信息,表结构如表4所示。

表4公告表结构

三、 系统实现

1、注册登录模块

▲数据访问层设计

用于实现和用户相关的数据库交互操作,主要是创建UserMapper接口,在该接口中定义6各方法,实现添加会员、更新会员、删除会员、按会员号查找会员、按会员名查找会员及查找所欲会员的功能。

public interface MemberMapper {
    @Insert("INSERT INTO members VALUES(#{id},#{username},#{password}," +
            "#{email},#{telephone})")
    public int save(Member member); // 添加会员
    @Delete("DELETE FROM members WHERE id=#{id}")
    public int delete(int id); // 删除会员
    @Update("UPDATE members SET username=#{username},password=#{password}," +
            "email=#{email},telephone=#{telephone} WHERE id=#{id}")
    public int update(Member member); // 更新会员
    @Select("SELECT * FROM members WHERE id=#{id}")
    public Member findById(int id); // 按id查找会员
    @Select("SELECT * FROM members WHERE username=#{username}")
    public Member findByName(String username); // 按姓名查找会员
    @Select("SELECT * FROM members")
    public List<Member> findAll(); // 查找全部会员
}

▲业务逻辑层设计

业务逻辑层的设计包括两部分,一是创建业务逻辑组件接口MemberService;二是创建业务逻辑组件实现类MemberServiceImpl。

业务逻辑组件接口:

public interface MemberService {
    public int save(Member member); // 添加会员
    public int update(Member member); // 更新会员
    public int delete(int id); // 删除会员
    public Member findById(int id); // 按id查找会员
    public Member findByName(String username, String password); // 按姓名查找会员
    public List<Member> findAll(); // 查找全部会员
}

业务逻辑组件实现类:


@Service
@Transactional
public class MemberServiceImpl implements MemberService {
    @Autowired
    private MemberMapper memberMapper;
    // 添加会员
    @Override
    public int save(Member member) {
        // 如果表中不包含该会员,则添加该会员
        if (memberMapper.findById(member.getId()) == null)
            return memberMapper.save(member);
        else
            return 0;
    }
    // 更新会员
    @Override
    public int update(Member member) {
        // 如果表中存在该会员,则更新该会员
        if (memberMapper.findById(member.getId()) != null)
            return memberMapper.update(member);
        else
            return 0;
    }
    // 删除会员
    @Override
    public int delete(int id) {
        // 如果表中存在该会员,则删除该会员
        if (memberMapper.findById(id) != null)
            return memberMapper.delete(id);
        else
            return 0;
    }
    // 按id查找会员
    @Override
    public Member findById(int id) {
        return memberMapper.findById(id);
    }
    // 查找全部会员
    public List<Member> findAll() {
        return memberMapper.findAll();
    }
    public Member findByName(String username, String password) {
        Member member = memberMapper.findByName(username);
        if (member != null && member.getPassword().equals(password)) {
            return member;
        }
        return null;
    }
}

▲控制器的开发

创建控制器MemberController

@Controller
public class MemberController {
    private static final Log logger = LogFactory.getLog(MemberController.class);
    @Autowired
    private MemberService memberService;
    // 显示注册表单
    @RequestMapping(value = "/member-register", method = RequestMethod.GET)
    public ModelAndView register(Model model) {
        logger.info("register called");
        return new ModelAndView("memberForm", "command", new Member());
    }
    // 添加会员
    @RequestMapping(value = "/save-member")
    public String saveMember(@ModelAttribute Member member, Model model) {
        logger.info("save member called");
        int n = memberService.save(member);
        if (n == 1) {
            List<Member> members = memberService.findAll();
            model.addAttribute("memberList", members);
            return "memberList";
        } else {
            return "error";
        }
    }
    // 显示登录表单
    @RequestMapping(value = "/member-login", method = RequestMethod.GET)
    public ModelAndView login(Model model) {
        logger.info("login called");
        return new ModelAndView("memberLogin", "command", new Member());
    }
    // 实现会员登录
    @RequestMapping(value = "/member-login", method = RequestMethod.POST)
    public String memberLogin(String username, String password, Model model) {
        logger.info("login member called");
        Member member = memberService.findByName(username, password);
        if (member != null) {
            model.addAttribute("member", member);
            return "welcome";
        } else {
            return "error";
        }
    }
    // 查找所有会员信息
    @RequestMapping(value = "/find-all-member")
    public String findAllMember(Model model) {
        logger.info("find all member called");
        List<Member> members = memberService.findAll();
        model.addAttribute("memberList", members);
        return "memberList";
    }
    // 按编号查找会员
    @RequestMapping(value = "/find-member")
    public String findMemberById(Integer id, Model model) {
        logger.info("findMember called");
        Member member = memberService.findById(id);
        model.addAttribute("member", member);
        return "member";
    }
    // 删除会员
    @RequestMapping(value = "/delete-member/{id}")
    public String deleteMember(@PathVariable Integer id, Model model) {
        logger.info("delete member called");
        int n = memberService.delete(id);
        List<Member> members = memberService.findAll();
        model.addAttribute("memberList", members);
        return "memberList";
    }
    // 修改会员
    @RequestMapping(value = "/edit-member/{id}")
    public String editMember(@PathVariable Integer id, Model model) {
        logger.info("edit member called");
        Member member = memberService.findById(id);
        model.addAttribute("member", member);
        return "memberEditForm";
    }
    // 更新会员
    @RequestMapping(value = "/update-member")
    public String updateMember(@ModelAttribute Member member, Model model) {
        logger.info("update member called");
        int n = memberService.update(member);
        List<Member> members = memberService.findAll();
        model.addAttribute("memberList", members);
        return "memberList";
    }
}

四、 项目实现

(1)注册登录模块

通过宠物救助信息管理系统的注册登录模块,用户可以创建自己的账户,然后使用该账户登录系统,在系统中进行各种操作,例如浏览、查询、修改等。同时,注册登录功能还可以防止未经授权的访问和操作,保护系统的安全性。

▲实现注册功能

对于宠物领养信息管理系统,首次使用该系统的用户需要先注册账号,如下图所示。

用户在注册的时候需要填写登录账号、登录密码并确认密码,在每一个文本框中都有文字提示。在输入所有数据以后,点击“注册”按钮,即可完成注册。

▲实现登录功能

用户完成注册后,可以对宠物领养信息管理系统进行登录操作。登录页面如下图所示。

在登录时,需要验证用户名和密码是否正确,并进行验证码校验,只有用户名、密码和验证码全部正确才能够登录成功。

(2)用户模块

用户模块的功能是对用户相关的信息如:用户名、密码、姓名、性别、手机、备注、类型等进行增加、删除、修改、查询列表、显示详情等管理操作,普通用户可以进行检索和查看,管理员可以对信息进行增加编辑和删除。

▲用户信息列表页面

用于显示用户信息列表,如下图所示。

▲用户新增界面

用于管理员在后台添加用户信息,如下图所示。

▲用户信息编辑界面

用户信息编辑页面,用于编辑用户信息,效果图如下图所示。

用户信息编辑页面

▲用户信息显示界面

用于显示用户详细信息,界面效果如下图所示。

▲用户删除

用户管理员在后台删除用户功能,管理员在用户列表页面中,单击操作列中的删除按钮,即可删除选定的用户,删除前须提醒用户确认。

(3)宠物模块

宠物模块的功能是对宠物相关的信息如:编号、昵称、类型、备注、性别等进行增加、删除、修改、查询列表、显示详情等管理操作,普通用户可以进行检索和查看,管理员可以对信息进行增加编辑和删除。

▲宠物信息列表页面

用于显示宠物信息列表,宠物信息列表如下图所示。

▲宠物信息添加界面

宠物信息添加页面效果图如下图所示。

宠物信息添加页面

▲宠物信息编辑界面

用于宠物信息的修改,效果图如下图所示。

▲宠物信息详细界面

用于显示宠物的详细信息,界面如下图所示。

▲宠物信息删除功能

用于管理员在后台删除宠物信息,管理员在宠物列表页面中,单击操作列中的删除按钮,即可删除选定的宠物信息,删除前须提醒用户确认。

(4)领养信息模块

领养信息模块的功能是对领养相关的信息如:领养人、电话、性别、地址、宠物编号、领养时间、是否同意、备注等进行增加、删除、修改、查询列表、显示详情等管理操作,普通用户可以进行检索和查看,管理员可以对信息进行增加编辑和删除。

▲领养信息列表页面

用于显示宠物领养信息列表,效果图如下图所示。

▲添加领养信息页面

用于添加宠物领养信息,界面效果图如下图所示

▲领养信息编辑页面

用于修改宠物领养信息,界面效果图如下图所示

▲宠物领养信息删除功能

用于管理员在后台删除宠物领养信息,管理员在宠物领养列表页面中,单击操作列中的删除按钮,即可删除选定的宠物领养信息,删除前须提醒用户确认。

(5)公告模块

公告模块的功能是对公告相关的信息如:标题、内容、类型、创建时间等进行增加、删除、修改、查询列表、显示详情等管理操作,普通用户可以进行检索和查看,管理员可以对信息进行增加编辑和删除。

▲公告信息列表页面

用于显示公告信息列表,效果图如下图所示。

▲添加公告信息页面

用于添加公告领养信息,界面效果图如下图所示

▲公告信息编辑页面

用于修改公告信息,界面效果图如下图所示

▲公告信息删除功能

用于管理员在后台删除公告信息,管理员在公告列表页面中,单击操作列中的删除按钮,即可删除选定的公告信息,删除前须提醒用户确认。

五、 总结

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopinvvp QQ:1015083682     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
降低商用飞机的直接维护费用的方法 基于注塑模具钢研磨和抛光工序的自 基于arduino的智能台灯设计
基于多传感器融合的井下装备周边人 室温下铁磁过渡金属掺杂ZnO薄膜 图像处理报告基于CNN的监控视频
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopinvvp QQ:1015083682  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!