Java项目:前台+后台精品图书管理系统(java+SSM+jsp+mysql+maven)
源码获取:博客首页 "资源" 里下载!
一、项目简述
功能包括: 登录注册,办理借阅。借阅记录,预约借阅,借出未还, 借阅逾期,学生管理,图书管理,书库分类查询搜索。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
用户列表信息:
/*** 用户列表信息*/@Controller
@RequestMapping("/admin")
public class Loan_UserInfoController {@Autowiredprivate Loan_UserInfoList loan_userInfoList;//查询用户信息列表@RequestMapping("/loan_userList")public String userList(Model model) {List<TbUser> userList = loan_userInfoList.findUserList();
/* for(TbUser t : userList) {System.out.println(t);}*/model.addAttribute("userList", userList);return "admin/loan_userList";}//用户信息修改页面@RequestMapping("/loan_editUser")public String editUser(Integer id, Model model) {TbUser tbUser = loan_userInfoList.updataUserInfo(id);model.addAttribute("tbUser", tbUser);return "admin/loan_editUser";}//用户信息修改提交@RequestMapping("/editUser")public String editUser(TbUser tbUser, Model model) {int i = loan_userInfoList.editUser(tbUser);if (i > 0) {return "redirect:loan_userList.action";}//进行数据回显model.addAttribute("tbUser", tbUser);return "admin/loan_editUser";}//用户删除@RequestMapping("/loan_deleteUser")public String loan_deleteUser(Integer id) {int i = loan_userInfoList.deleteUser(id);if (i > 0) {return "redirect:loan_userList.action";}return "redirect:loan_userList.action";}//用户添加@RequestMapping("/loan_addUser")public String addUser(TbUser tbUser) {//注册时间tbUser.setRegisterdate(System.currentTimeMillis());//not onlinetbUser.setIsonline(0);tbUser.setPassword(tbUser.getUsername());int i = loan_userInfoList.addUser(tbUser);if (i > 0) {System.out.println("添加成功!");return "redirect:loan_userList.action";}return "redirect:loan_userList.action";}//用户列表模糊查询用户信息(用户名)@RequestMapping("/loan_selectLikeName")public String Loan_selectLikeName(TbUser tbUser, Model model) {Integer online = null;TbUserQueryVo tbUserQueryVo = new TbUserQueryVo();tbUserQueryVo.setTbUser(tbUser);tbUserQueryVo.setOnline(online);List<TbUser> userList = loan_userInfoList.selectLikeName(tbUserQueryVo);model.addAttribute("userList", userList);return "admin/loan_userList";}
}
图书借阅管理Controller:
/*** 图书借阅管理Controller***/
@Controller
@RequestMapping("/admin")
public class Loan_LoanListController {@Autowiredprivate Loan_management loan_management;@Autowiredprivate LibraryService libraryService;@Autowiredprivate TbLibraryMapper tbLibraryMapper;@Autowiredprivate TbRecordMapper recordMapper;@Autowiredprivate Loan_UserInfoList loan_userInfoList;@RequestMapping("/loan/to_jieyue_book2")public String jieyue_book2(Model model) {return "admin/jieshu_book";}@RequestMapping("/loan/jieyue_book2")public String jieyue_book2(HttpSession session, String xuehao, String barcode, Model model) {TbLibrary book = tbLibraryMapper.selectByBarcode(barcode);if (null == book) {model.addAttribute("errorMsg", "图书条形码不存在");return "errorMsg";}TbUser tbUser = tbLibraryMapper.selectByStuNum(xuehao);if (null == tbUser) {model.addAttribute("errorMsg", "学生学号不存在");return "errorMsg";}//逾期,未归还Integer id=tbUser.getId();List<TbRecordQueryVo> recordOverdueList = loan_userInfoList.selectRecordOverdue(id);for (TbRecordQueryVo vo : recordOverdueList) {if (vo.getTicketffee() < 0) {model.addAttribute("errorMsg", "该学生有欠款不可以借阅");return "errorMsg";}}TbRecord record = new TbRecord();// 获取 session 中的用户信息record.setUserId(tbUser.getId());record.setBookId(book.getId());Long currentTimeS = System.currentTimeMillis() / 1000;record.setRecorddate(currentTimeS); //预约 借阅时间record.setBackdate(currentTimeS + 3 * 30 * 24 * 60 * 60); //预约 3个月天 时间record.setTicketffee(0f);record.setReturnbook(0);// 插入数据recordMapper.insert(record);model.addAttribute("successMsg", "借阅成功");return "errorMsg";}//借阅列表显示@RequestMapping("/loan/loanList")public String loanList(Model model, Integer currentPage) throws Exception {TbRecordL tbRecordL = new TbRecordL();//如果传入的有页面if (currentPage != null) {tbRecordL.setCurrentPage(currentPage);}//查询数据和分页,并返回pageL pageL = this.loan_management.getLoanRecord(tbRecordL);List<TbRecordL> loanRecordList = (List<TbRecordL>) pageL.getPo();model.addAttribute("pageL", pageL);model.addAttribute("loanRecordList", loanRecordList);return "admin/loan_loanList";}//借阅列表搜素@RequestMapping("/loan/searchLoanList.action")public String searchLoanList(Model model, String searchSelect, String searchKeyWord) throws Exception {//实例化包装类(包装类中在原有类的基础上添加的column(列名称)和keyword(搜索关键字)两个字段)TbRecordSearchL tbRecordSearchL = new TbRecordSearchL();tbRecordSearchL.setColumn(searchSelect);tbRecordSearchL.setKeyWord(searchKeyWord);//将查询结果保存到list集合并通过model将对象集合放入request域中pageL pageL = this.loan_management.getLoanRecord(tbRecordSearchL);List<TbRecordL> loanRecordList = (List<TbRecordL>) pageL.getPo();model.addAttribute("loanRecordList", loanRecordList);return "admin/loan_loanList";}// 借阅列表归还状态修改@RequestMapping("/loan/changeLoanStatus")public String changeLoanStatus(Model model, String recid, String status) throws Exception {loanStatusL loanStatusL = new loanStatusL();loanStatusL.setId(recid);loanStatusL.setStatus(status);this.loan_management.changLoanStatus(loanStatusL);//返回借阅列表return "redirect:/admin/loan/loanList.action";}
}
预约记录控制层:
/*** 预约记录**/
@Controller
@RequestMapping("/admin")
public class Loan_BespeakRecordController {@Autowiredprivate Loan_management loan_management;//数据列表@RequestMapping("/loan/bespeakList")public String BespeakList(Model model, Integer currentPage) throws Exception {TbOrderL tbOrderL = new TbOrderL();//如果传入的有页面if (currentPage != null) {tbOrderL.setCurrentPage(currentPage);}//查询数据和分页,并返回pageL pageL = new pageL();pageL = this.loan_management.getBespeakRecord(tbOrderL);List<TbOrderL> BespeakList = (List<TbOrderL>) pageL.getPo();model.addAttribute("pageL", pageL);model.addAttribute("BespeakList", BespeakList);return "admin/loan_bespeak";}//列表查询@RequestMapping("/loan/searchBespeak")public String searchBespeak(Model model, String searchSelect, String searchKeyWord, Integer currentPage) throws Exception {TbOrderL tbOrderL = new TbOrderL();//如果传入的有页面if (currentPage != null) {tbOrderL.setCurrentPage(currentPage);}//实例化包装类(包装类中在原有类的基础上添加的column(列名称)和keyword(搜索关键字)两个字段)tbOrderL.setColumn(searchSelect);tbOrderL.setKeyWord(searchKeyWord);pageL pageL = new pageL();pageL = this.loan_management.getBespeakRecord(tbOrderL);List<TbOrderL> BespeakList = (List<TbOrderL>) pageL.getPo();model.addAttribute("pageL", pageL);model.addAttribute("BespeakList", BespeakList);return "admin/loan_bespeak";}// 领取操作@RequestMapping("/loan/getBespeak")public String getBespeak(Model model, Integer id, Integer bookid, Integer userid) throws Exception {//通过bookid和userid 借阅表插入借阅记录TbRecord tbRecord = new TbRecord();tbRecord.setBookId(bookid);tbRecord.setUserId(userid);this.loan_management.addLoanList(tbRecord);//通过id删除预约记录this.loan_management.removeOrderList(id);//返回借阅列表return "redirect:/admin/loan/bespeakList.action";}// 删除预约记录@RequestMapping("/loan/removeBespeak")public String removeBespeak(Integer id) throws Exception {this.loan_management.removeOrderList(id);return "redirect:/admin/loan/bespeakList.action";}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

消除 activity 启动时白屏、黑屏问题
默认情况下 activity 启动的时候先把屏幕刷成白色,再绘制界面,绘制界面或多或少有点延迟,这段时间中你看到的就是白屏,显然影响用户体验,怎么消除呢? 在 Activity theme 设置style 即可 1 <style na…

理解并实施:HSRP(CCNA200-120新增考点)
理解并实施:HSRP思科热备路由器协议HSRP(HotStandby Router Protocol)是企业级网络路由器的故障冗余服务。如图9.116所示,192.168.2.0/24的子网需要与目标192.168.5.2的计算机通信。192.168.2.0/24的子网有两台出口路由器,一台是R…

使用机智云APP控制战舰V3 (转)
源:使用机智云APP控制战舰V3 转载于:https://www.cnblogs.com/LittleTiger/p/10725586.html

从JoinBatchGroup 代码细节 来看Rocksdb的相比于leveldb的写入优势
文章目录1. Rocksdb写入模型2. LevelDB写入的优化点3. Rocksdb 的优化1. Busy Loop2. Short Wait -- SOMETIMES busy Loop3. Long-wait4. 测试验证4. 总结1. Rocksdb写入模型 本节讨论一下Rocksdb在写入链路上的一个优化点,这个优化细节可以说将Rocksdb这个存储引擎…

Java项目:嘟嘟网上商城系统(java+jdbc+jsp+mysql+ajax)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能: 商品的分类展示,用户的注册登录,购物车,订单结算, 购物车加减,后台商品管理,分类管理,订单…

SOAPUI请求及mockservice 使用
1、新建soap Project,输入wsdl的地址,运行request 2.邮件Project,建立mockservice,建立多个response,选在mock operation,选择response dispa…

空间直角坐标系与球面坐标互转
空间直角坐标系与球面坐标互转 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 6 namespace AppSurveryTools.SphericalAndCartesian7 {8 class CartesianCoord9 { 10 public double x; 11 public dou…

Ajax 的优势和不足
Ajax 的优势 1. 不需要插件支持 Ajax 不需要任何浏览器插件,就可以被绝大多数主流浏览器所支持,用户只需要允许 JavaScript 在浏览器上执行即可。 2. 优秀的用户体验 这是 Ajax 技术的最大优点,能在不刷新整个页面的前提下更新数据࿰…

BitCask 持久化hash存储引擎 原理介绍
文章目录前言引擎背景引擎原理1. 磁盘数据结构2. 内存数据结构3. 读流程4. 数据合并总结前言 最近工作中部分项目中,对存储引擎的需求希望高性能的写、点查,并不需要Range。这里看到大家总会提到BitCask这个存储引擎方案,并不是很了解&#…

C# Socket系列三 socket通信的封包和拆包
通过系列二 我们已经实现了socket的简单通信 接下来我们测试一下,在时间应用的场景下,我们会快速且大量的传输数据的情况! 1 class Program2 {3 static void Main(string[] args)4 {5 TCPListener tcp n…

Java项目:CRM客户管理系统(java+SSM+jsp+mysql+maven)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能包括: 用户管理,系统管理,客户管理,客户服务,客户关怀, 销售机会,统计管理等等。 二、项目运行 环境配置&#x…

Android 获取标题栏的高度
2019独角兽企业重金招聘Python工程师标准>>> 通过获取内容区域的 rect 的 top 值就是状态栏和标题栏的高度,也就可以得到标题栏的高度了, [java] view plaincopy int contentTop getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTo…

力扣—— 三维形体投影面积
在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体。 每个值 v grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。 现在,我们查看这些立方体在 xy、yz 和 zx 平面上的投影。 投影就像影子,将…

一图带你入门Linux 存储I/O栈
发现了一个内核大佬 的 Linux 存储I/O栈,很清晰!!! 原地址如下: http://ilinuxkernel.com/?p1559 【侵删】

Java项目:在线美食网站系统(java+SSM+jsp+mysql+maven)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能:用户的注册登录,美食浏览,美食文化,收藏百 科,趣味问答,食谱等等功能等等。 二、项目运行 环境配置:…

性能测试中传——lr理论基础(四)
转载于:https://blog.51cto.com/fuwenchao/1346435

滑动定位的三种方法,以及热启动(五)
from init_driver.Init_driver import init_driverdriver init_driver()# 坐标-->坐标,定位滑动 driver.swipe(309, 1353, 537, 511, duration3000)# 元素-->元素,定位滑动 start_ele driver.find_element_by_xpath("//*[contains(text, 通…

TitanDB GC详细实现原理 及其 引入的问题
文章目录1. 为什么要有GC2. GC的触发条件3. GC的核心逻辑1. blob file形态2. GC Prepare3. GC pick file4. GC run4. GC 引入的问题5. Titan的测试代码通过本篇,能够从TitanDB的源代码中看到 key/value 分离之后引入的一些复杂性,这个复杂性很难避免。 …

Java项目:医院住院管理系统(java+SSM+jsp+mysql+maven)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能包括: 住院病人管理,住院病房管理,医生管理,药品管理,仪 器管理等等。 二、项目运行 环境配置: Jdk1.8 Tomcat8.…

1m网速是什么意思,1m带宽是什么意思
1M网速下载速度应是多少?我怎么才50多KB?? 建议: 一般来说是90到100算正常。最高能达到120 带究竟该有多快 揭开ADSL真正速度之谜 常常使用ADSL的用户,你知道ADSL的真正速度吗?带着这个疑问我们将问题一步一步展开。…

泛型实体类List绑定到repeater
泛型实体类List<>绑定到repeater 后台代码: private void bindnewslist(){long num 100L;List<Model.news> news _news.GetList(out num);this.newslist.DataSource news;this.newslist.DataBind();} 说明:Model.news是实体类,…

Qt4.8.5移植
这两天搞了Qt移植 因为不小心 耽误了挺多时间 但是也比较好的掌握了 现在记录一下 准备工具: tslib-1.16 qt-everywhere-opensource-src-4.8.5.tar 下载路径: tslib-1.16下载: https://github.com/kergoth/tslib/releases/download/1.16/t…

Rocksdb 通过ingestfile 来支持高效的离线数据导入
文章目录前言使用方式实现原理总结前言 很多时候,我们使用数据库时会有离线向数据库导入数据的需求。比如大量用户在本地的一些离线数据,想要将这一些数据导入到已有的数据库中;或者说NewSQL场景中部分机器离线,重新上线之后的数…

Java项目:企业人事管理系统(java+SSM+jsp+mysql+maven)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能介绍:员工管理,用户管理,部门管理,文档管理, 职位管理等等。 二、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe (I…

XCODE 6.1.1 配置GLFW
最近在学习opengl的相关知识。第一件事就是配环境(好烦躁)。了解了一下os x下的OpenGL开源库,主要有几个:GLUT,freeglut,GLFW等。关于其详细的介绍可以参考opengl网站(https://www.opengl.org/wiki/Related_toolkits_and_APIs)。由…

SpringCloud远程调用为啥要采用HTTP,而不是RPC?
通俗的说法就是:比如说现在有两台服务器A和B,一个应用部署在A服务器上,另一个应用部署在B服务器上,如果A应用想要调用B应用提供的方法,由于他们不在一台机器下,也就是说它们不在一个JVM内存空间中,是无法直接调用的,需要通过网络进行调用,那这个调用过程就叫做RPC。建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket ,套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
vs快捷键及常用设置(vs2012版)
vs快捷键: 1、ctrlf F是Find的简写,意为查找。在vs工具中按此快捷键,可以查看相关的关键词。比如查找哪些页面引用了某个类等。再配合查找范围(整个解决方案、当前项目、当前文档等),可以快速的找到问题所在…

python_day10
小甲鱼python学习笔记 爬虫之正则表达式 1.入门(要import re) 正则表达式中查找示例: >>> import re >>> re.search(rFishC,I love FishC.com) <re.Match object; span(7, 12), matchFishC> >>> #单纯的这种…

Graphics2D API:Canvas操作
在中已经介绍了Canvas基本的绘图方法,本篇介绍一些基本的画布操作.注意:1、画布操作针对的是画布,而不是画布上的图形2、画布变换、裁剪影响后续图形的绘制,对之前已经绘制过的内容没有影响。

关于Titandb Ratelimiter 失效问题的一个bugfix
本文简单讨论一下在TitanDB 中使用Ratelimiter的一个bug,也算是一个重要bug了,相关fix已经提了PR到tikv 社区了pull-210。 这个问题导致的现象是ratelimiter 在titandb Flush/GC 生成blobfiled的过程中无法生效,也就是无法限制titandb的主要…