JavaWeb图书管理系统,老程序员花一天一夜回忆学生时代!

CREATE TABLE user (

id int(11) NOT NULL auto_increment COMMENT ‘主键’,

no varchar(20) default NULL COMMENT ‘账号-学生一般用学号’,

name varchar(100) not NULL COMMENT ‘名字’,

password varchar(20) not NULL COMMENT ‘密码’,

sex varchar(20) default NULL COMMENT ‘性别’,

phone varchar(20) default NULL COMMENT ‘电话’,

role_id int(11) default NULL COMMENT ‘角色 0超级管理员,1管理员,2老师,3学生’,

isValid varchar(4) default ‘Y’ COMMENT ‘是否有效,Y有效,其他无效’,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

默认插入超级管理员数据

INSERT INTO user VALUES (‘1’, ‘sa’, ‘超级管理’, ‘321’, ‘1’, ‘111’, ‘0’, ‘Y’);

菜单表

CREATE TABLE menu (

id int(11) NOT NULL,

menuCode varchar(8) default NULL COMMENT ‘菜单编码’,

menuName varchar(16) default NULL COMMENT ‘菜单名字’,

menuLevel varchar(2) default NULL COMMENT ‘菜单级别’,

menuParentCode varchar(8) default NULL COMMENT ‘菜单的父code’,

menuClick varchar(16) default NULL COMMENT ‘点击触发的函数’,

menuRight varchar(8) default NULL COMMENT ‘权限3表示学生,2表示老师,1表示管理员,0超级管理员,可以用逗号组合使用’,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

默认插入的数据(建议一行行的插入,反正我的mysql一条条的弄,不然后面的中文会乱码)

NSERT INTO menu VALUES (‘1’, ‘001’, ‘管理员管理’, ‘1’, null, ‘adminManage’, ‘0’);

INSERT INTO menu VALUES (‘2’, ‘002’, ‘教师/学生管理’, ‘1’, null, ‘userManage’, ‘0,1’);

INSERT INTO menu VALUES (‘3’, ‘003’, ‘分类管理’, ‘1’, null, ‘categoryManage’, ‘0,1’);

INSERT INTO menu VALUES (‘4’, ‘004’, ‘图书管理’, ‘1’, null, ‘booksManage’, ‘0,1,2,3’);

INSERT INTO menu VALUES (‘5’, ‘005’, ‘借阅信息管理’, ‘1’, null, ‘recordManage’, ‘0,1,2,3’);

INSERT INTO menu VALUES (‘6’, ‘006’, ‘修改密码’, ‘1’, null, ‘modPwd’, ‘0,1,2,3’);

INSERT INTO menu VALUES (‘7’, ‘007’, ‘退出系统’, ‘1’, null, ‘logout’, ‘0,1,2,3’);

分类信息表

CREATE TABLE category (

id int(11) NOT NULL auto_increment COMMENT ‘主键’,

name varchar(100) not NULL COMMENT ‘分类名’,

remark varchar(1000) default NULL COMMENT ‘备注’,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

图书表

CREATE TABLE books (

id int(11) NOT NULL auto_increment COMMENT ‘主键’,

name varchar(100) not NULL COMMENT ‘书名’,

category int(11) not NULL COMMENT ‘分类’,

count int(11) default NULL COMMENT ‘数量’,

curCount int(11) default NULL COMMENT ‘现存数量’,

remark varchar(1000) default NULL COMMENT ‘备注’,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

借阅信息表

CREATE TABLE record (

id int(11) NOT NULL auto_increment COMMENT ‘主键’,

book int(11) not NULL COMMENT ‘书id’,

userId int(11) not NULL COMMENT ‘借阅人’,

start_date date default NULL COMMENT ‘开始日期’,

end_date date default NULL COMMENT ‘结束日期’,

return_date date default NULL COMMENT ‘归还日期’,

state int(1) not NULL COMMENT ‘状态:1 借阅 2 归还 3 续借’,

admin_id int(11) default NULL COMMENT ‘操作人id’,

remark varchar(1000) default NULL COMMENT ‘备注’,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

系统模块介绍

===================================================================

系统管理员管理


超级管理员才有的权限,可以增加、修改、删除系统管理员。

在这里插入图片描述

在这里插入图片描述

教师/学生管理


管理员和超管都可以操作,新增、修改、删除等操作。

1.管理员和超管新增的默认是激活状态。

2.教师和学生注册申请过来的,需要管理员激活(也就是账号审核功能)。

在这里插入图片描述

在这里插入图片描述

分类管理


管理员和超管都可以操作,新增、修改、删除等操作。

在这里插入图片描述

图书管理


管理员和超管都可以操作,新增、修改、删除、借阅等操作。

学生/教师 仅仅有查看图书功能

在这里插入图片描述

借阅操作是在此界面进行操作的,选择书本后进行借阅操作

1.借阅人需要选择

2.数量现在默认是1

3.需选择归还日期

在这里插入图片描述

选择借阅人界面

在这里插入图片描述

借阅信息管理


管理员和超管都可以操作,归还、续借等操作。

学生/教师 仅仅只能查看自己的借阅信息

在这里插入图片描述

续借和归还也只能由管理员来操作

注册功能


在这里插入图片描述

修改密码


在这里插入图片描述

代码目录

=================================================================

java文件

在这里插入图片描述

页面

在这里插入图片描述

后端分层

在这里插入图片描述

代码精选

=================================================================

借阅信息查询

public Map queryByPage(RecordVO vo, int start, int pageSize)

{

String status=“-1”;

String content=“”;

Map retMap = new HashMap();

try

{

String sqlStrCount = "select count(1) from Record a,books b,user c where 1=1 and a.book=b.id and c.id=a.userId ";

String sqlStr = “select a.*,b.name bookName,c.name userName,” +

" (select name from user c where c.id=a.admin_id) admin_name from Record a,books b,user c where 1=1 and a.book=b.id and c.id=a.userId ";

String bookName = vo.getBookName();

if(!“”.equals(bookName)){

sqlStrCount +=" and b.name like’%“+bookName+”%'";

sqlStr +=" and b.name like’%“+bookName+”%'";

}

String userName = vo.getUserName();

if(!“”.equals(userName)){

sqlStrCount +=" and c.name like’%“+userName+”%'";

sqlStr +=" and c.name like’%“+userName+”%'";

}

Timestamp date =vo.getStart_date();

if(date!=null){

sqlStrCount +=" and a.start_date=‘“+date+”’";

sqlStr +=" and a.start_date=‘“+date+”’";

}

String userId = StringHelper.convertStringNull(vo.getUserId());

if(!“”.equals(userId)){

sqlStrCount +=" and a.userid=‘“+userId+”’";

sqlStr +=" and a.userid=‘“+userId+”’";

}

sqlStr +="order by a.id limit “+start+”, "+pageSize ;

ps = this.getWrappedConnection().prepareStatement(sqlStrCount);

rs = ps.executeQuery();

int totalCount=0;

if (rs.next())

{

totalCount = rs.getInt(1);

}

retMap.put(“totalCount”, String.valueOf(totalCount));

rs=null;

ps = this.getWrappedConnection().prepareStatement(sqlStr);

rs = ps.executeQuery();

List list = new ArrayList();

RecordVO recordVO = null;

while (rs.next())

{

recordVO = new RecordVO();

recordVO.setId(rs.getString(“id”));

recordVO.setBook(rs.getString(“book”));

recordVO.setBookName(rs.getString(“bookName”));

recordVO.setUserId(rs.getString(“userId”));

recordVO.setUserName(rs.getString(“userName”));

recordVO.setStart_date(rs.getTimestamp(“start_date”));

recordVO.setEnd_date(rs.getTimestamp(“end_date”));

recordVO.setReturn_date(rs.getTimestamp(“return_date”));

recordVO.setState(rs.getString(“state”));

recordVO.setAdmin_id(rs.getString(“admin_id”));

recordVO.setAdmin_name(rs.getString(“admin_name”));

recordVO.setRemark(rs.getString(“remark”));

list.add(recordVO);

}

retMap.put(“list”, list);

status=“1”;

}

catch (Exception e)

{

e.printStackTrace();

}finally{

try

{

this.cleanUp();

}

catch (Exception e)

{

e.printStackTrace();

}

}

面试结束复盘查漏补缺

每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。

以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

重要的事说三遍,关注+关注+关注!

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

image.png

更多笔记分享

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

;

}

catch (Exception e)

{

e.printStackTrace();

}finally{

try

{

this.cleanUp();

}

catch (Exception e)

{

e.printStackTrace();

}

}

面试结束复盘查漏补缺

每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。

以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

重要的事说三遍,关注+关注+关注!

[外链图片转存中…(img-JA15J9H4-1719264078234)]

[外链图片转存中…(img-zQR58Ydp-1719264078235)]

更多笔记分享

[外链图片转存中…(img-J49kKk8n-1719264078236)]

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值