Java实训项目--小型图书管理系统(ssm框架)

Posted 加辣椒了吗?

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实训项目--小型图书管理系统(ssm框架)相关的知识,希望对你有一定的参考价值。


一、系统功能介绍

本系统后台采用ssm框架编写,前台采用当前主流的layui框架和jquery框架完成页面信息展示功能。
开发环境:
(1)开发工具:eclipse
(2)数据库:mysql-8.0.16-winx64
(3)JDK:1.8.0_202
(4)JDBC:8.0.16

包结构:
在这里插入图片描述
数据库结构:
在这里插入图片描述

二、系统实现

1.注册模块

注册模块用于管理员或读者注册,通过此模块将用户信息注入到读者表或管理员表。登录者根据自己注册的账号,密码和身份(管理员或读者)进行登录时,将会对读者表或管理员录入的信息表进行查找。如图3.1所示。

图3.1 注册界面图:
在这里插入图片描述

2.登录模块

登录模块用于管理员或读者登录,通过此模块进入图书管理系统。登录者根据自己的账号,密码和身份(管理员或读者)进行登录时,将会对读者表或管理员的信息表进行查找对比,当信息匹配时,登录成功。当身份是管理员时,进入管理员界面,管理员可以操作的模块有图书管理,读者管理,借书管理。当身份是读者时,进入读者界面,读者可以操作的模块有借阅图书,归还图书。如图3.2、图3.3、图3.4所示。

图3.2 登录界面图:
在这里插入图片描述
图3.3 管理员界面图:
在这里插入图片描述

图3.4 读者界面图:
在这里插入图片描述

3.图书管理模块

图书管理模块可添加、删除、修改、查询图书,图书主要有图书ID,图书名、作者、数量等信息,图书在管理员界面和读者界面共享,但只有管理员能对图书进行增删查改。借阅表,还书表,借阅记录表都依赖于图书表,如图3.5、图3.6、图3.7、图3.8、图3.9、图3.10所示。

图3.5图书管理界面图:
在这里插入图片描述

图3.6添加图书界面图:
在这里插入图片描述

图3.7删除图书界面图:
在这里插入图片描述

图3.8查询图书界面图:
在这里插入图片描述

图3.9查询结果界面图:
在这里插入图片描述

图3.10修改图书界面图:
在这里插入图片描述

4.读者管理模块

读者管理模块可添加、删除、修改、查询读者,读者主要有读者ID,读者姓名、读者密码、性别等信息,只有管理员能对读者进行增删查改。如图3.11、图3.12、图3.13、图3.14、图3.15、图3.16所示。

图3.11读者管理界面图:
在这里插入图片描述

图3.12、图3.13、图3.14、图3.15、图3.16跟上个图书管理模块的增删查改界面类似,怕图太多,就不截出来了。

5.借书管理模块

借书管理模块用于管理员查看读者的借阅记录,可以根据书名,图书ID,读者ID,借阅状态等对借阅记录进行查询。借阅记录表依赖于借书表和还书表,如图3.17、图3.18所示。

图3.17 借书管理界面图:
在这里插入图片描述

图3.18 查询结果界面图:
在这里插入图片描述

6.借阅图书模块

借阅图书模块是读者选择自己想要的图书借阅的模块,读者选择自己想要借阅的图书并填入自己的学号即可借阅。如图5.19、图5.20所示。

图3.19借阅图书管理界面图:
在这里插入图片描述
图3.20借阅图书界面图
在这里插入图片描述

7.归还模块

归还模块用于读者归还图书,读者选择自己想要归还的图书并填入自己的学号即可归还图书。图3.21、图3.22跟上个借阅图书模块类似,就不截出来了。

8.访问拦截与权限控制子模块

访问拦截与权限控制子模块是本系统的安全性保证,此模块保证用户不能访问不属于自己身份的界面,管理员接口不能访问读者接口,读者接口不能访问管理员接口,实现接口隔离,防止越权操作。此模块依赖读者表和管理员表,如图3.23所示。

图3.23访问拦截与权限控制界面图:
在这里插入图片描述

三、关键代码

Dao层:
UserDao.java:

package com.dao;

import org.apache.ibatis.annotations.Param;

import com.po.Reader;
import com.po.User;

public interface UserDao {
	// 查询管理员
	public User FindUser(@Param("user_code") String user_code, @Param("user_passwd") String user_passwd);

	// 查询读者
	public Reader FindReader(@Param("readers_id") String readers_id, @Param("readers_passwd") String readers_passwd);

	// 添加管理员
	public void AddUser(@Param("user_code") String user_code, @Param("user_name") String user_name,
			@Param("user_passwd") String user_passwd, @Param("user_state") Integer user_state);

	// 添加读者
	public void Addreader(@Param("readers_name") String readers_name, @Param("readers_passwd") String readers_passwd);

}

UserDao.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dao.UserDao" >
    <!-- 查询管理员 -->
    <select id="FindUser" parameterType="String" resultType="User">
	    select *
	    from sys_user
	    where user_code = #{user_code}
	    and user_passwd =#{user_passwd}
	    and user_state = '1'
    </select>
    <!-- 查询读者 -->
    <select id="FindReader" parameterType="String" resultType="Reader">
	    select *
	    from readers
	    where readers_id = #{readers_id}
	    and readers_passwd =#{readers_passwd}
	    and readers_state = '0'
    </select>
    <!-- 添加管理员 -->
    <insert id="AddUser" parameterType="User">
        insert into 
        sys_user(user_code,user_name,user_passwd,user_state)
        values(#{user_code},#{user_name},#{user_passwd},#{user_state}) 
    </insert>
    <!-- 添加读者 -->
	<insert id="Addreader" parameterType="Reader">
		insert into
		readers(readers_name,readers_passwd,readers_state)
		values(#{readers_name},#{readers_passwd},"0")
	</insert>
</mapper>

service层:
UserServiceImpl.java:

package com.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.dao.UserDao;
import com.po.Reader;
import com.po.User;
import com.service.UserService;


@Service
@Transactional
public class UserServiceImpl implements UserService{

	@Autowired
	private UserDao userdao;
	
	// 查询管理员
	@Override
	public User FindUser(String user_code, String user_passwd) {
		User user = userdao.FindUser(user_code, user_passwd);
		
		return user;
	}

	// 添加管理员
	@Override
	public void AddUser(String user_code, String user_name, String user_passwd, Integer user_state) {
		userdao.AddUser(user_code, user_name, user_passwd, user_state);
		
	}
	// 查询读者
	@Override
	public Reader FindReader(String readers_id, String readers_passwd) {
		Reader findReader = userdao.FindReader(readers_id, readers_passwd);
		
		return findReader;
	}
	
	// 添加读者
	@Override
	public void Addreader(String readers_name, String readers_passwd) {
		userdao.Addreader(readers_name, readers_passwd);
		
	}
	
}

controller层:
UserController.java:

package com.controller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import com.po.Reader;
import com.po.User;

import com.service.*;

@Controller
public class UserController {
	@Autowired
	private UserService userservice;

	// 登录

	@RequestMapping(value = "/login", method = RequestMethod.GET)
	public String login_get(User user) {
		System.out.println("login_get");
		return "login";
	}

	// 管理员登录
	@ResponseBody
	@RequestMapping(value = "/login1", method = RequestMethod.POST)
	public String login1_post(@RequestBody User User, HttpSession session) {
		System.out.println("login1_post");
		User user = userservice.FindUser(User.getUser_code(), User.getUser_passwd());
		if (user != null) {
			session.setAttribute("USER_SESSION", user);
			return "{\\"state\\":\\"0\\"}";
		}
		return "{\\"state\\":\\"1\\"}";
	}

	// 读者登录
	@ResponseBody
	@RequestMapping(value = "/login2", method = RequestMethod.POST)
	public String login2_post(@RequestBody Reader Reader, HttpSession session) {
		System.out.println("login2_post");
		Reader reader = userservice.FindReader(Reader.getReaders_id(), Reader.getReaders_passwd());
		if (reader != null) {
			session.setAttribute("USER_SESSION", reader);
			return "{\\"state\\":\\"0\\"}";
		}
		return "{\\"state\\":\\"1\\"}";
	}

	// 注册
	@ResponseBody
	@RequestMapping(value = "/register", method = RequestMethod.GET)
	public String register_get() {
		System.out.println("register_get");
		return "login";
	}

	@ResponseBody
	@RequestMapping(value = "/register", method = RequestMethod.POST)
	public String register_post(@RequestBody User User) {
		System.out.println("register_post");
		User.setUser_state(1);
		userservice.AddUser(User.getUser_code(), User.getUser_name(), User.getUser_passwd(), User.getUser_state());
		return "{\\"state\\":\\"0\\"}";
	}
	
	@ResponseBody
	@RequestMapping(value = "/register2", method = RequestMethod.POST)
	public String register2_post(@RequestBody Reader Reader) {
		System.out.println("register2_post");
		userservice.Addreader(Reader.getReaders_name(),Reader.getReaders_passwd());;
		return "{\\"state\\":\\"0\\"}";
	}

	// 管理员界面
	@RequestMapping(value = "/home", method = RequestMethod.GET)
	public String home_get() {
		System.out.println("home_get");
		return "home";
	}

	// 读者借书界面
	@RequestMapping(value = "/home2", method = RequestMethod.GET)
	public String home2_get() {
		System.out.println("home2_get");
		return "home2_1";
	}

	// 读者还书界面
		@RequestMapping(value = "/home2_2", method = RequestMethod.GET)
		public String home2_2_get() {
			System.out.println("home2_2_get");
			return "home2_2";
		}
		
	// 退出
	@RequestMapping(value = "/loginout", method = RequestMethod.GET)
	public String loginout_get(HttpSession session) {
		System.out.println("loginout_get");
		session.invalidate();
		return "login";
	}
}

总结

实训的代码,适用于应付作业实训练习等。 代码下载链接(附带数据库):

图书管理系统
or
图书管理系统

以上是关于Java实训项目--小型图书管理系统(ssm框架)的主要内容,如果未能解决你的问题,请参考以下文章

Java实训项目--小型书店管理系统(ssm框架)

Java项目:图书管理系统设计和实现(java+ssm+mysql)

基于SSM框架图书借阅系统项目开发与设计(附源码资料)

基于SSM框架图书管理系统开发与设计(附源码资料)-毕业设计

JAVA基于SSM框架的中小型企业商务网站

基于java SSM图书管理系统简单版设计和实现