请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

SSM 轻量级框架构建:图书管理系统

[复制链接]
查看: 69|回复: 0

8248

主题

8248

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
24754
发表于 2019-12-2 22:59 | 显示全部楼层 |阅读模式
一、接营业,作分析
1、大略营业要求
1.1 利用 SSM( Spring MVC + Spring + MyBatis )实现图手札息治理系统, MySQL5.5 作为背景数据库,该系统包含查询图手札息功用和增加图手札息功用
1.2 查询页面成果图
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 1871711-20191202170120127-1619806169

1.3 增加新信息页面成果图
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 1871711-20191202170221952-1405971795

2、查询页面要求
2.1 翻开图手札息治理系统首页,分页表示全数图手札息,图手札息按增加时候降序。供给查询表单和“增加新书”超链接
分析:在 controller 的的初始页面里便要给出 List 成果集。分面即是表示从第 N 条至 第 N 每条中的四条数据。降序是 order by 加个 desc
2.2 供给别离按书名、作者、出书社查询图书的静态条件查询的功用,支持暗昧查询。查询成果按增加时候降序,分页展现
分析:两个输入框只要二种情况,即是全数查询和暗昧查询两种情况。若仅出现单个查询条件,则默许查询全数信息
3、增加新图册页面要求
3.1 点击“增加新书”超链接跳转到增加新册页面。点击“返回”超链接返回图手札息治理系统首页。输入图手札息,利用 JavaScript 考证全数项不能为空,页数必须是整数,价格必须是数字典范
分析:页面的跳转因无出格要求,则利用  标签即可,JavaScript 则要先获得全数输入框中的工具,再取值判定能否正当
3.2 输入增加新书每项信息后点击“提交”。增加日期取系统时候,保存乐成大要失利都跳转到图手札息治理系统首页,列表下方表示“保存乐成!”或“保存失利!”
分析:增加后间接跳转到主页面,默许表示全数信息,而且给出增加成果的反应信息
二、架构筹划思绪
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 1871711-20191202170623344-93352448

三、数据库筹划
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 1871711-20191202202551007-1567162261

四、项目框架搭建
4.1 jsp 页面实现
4.1.1 查询信息的主页面
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 [align=center]2 共 ${pagecount} 页3 |当前第 ${curnum } 页 4 |[url=http://www.waysfocus.com/index2?curnum=${curnum }&str1=${str1}&str2=${str2}&sx=0]首页[/url]5 |[url=http://www.waysfocus.com/index2?curnum=${curnum }&str1=${str1}&str2=${str2}&sx=1]上一页[/url]6 |[url=http://www.waysfocus.com/index2?curnum=${curnum }&str1=${str1}&str2=${str2}&sx=2]下一页[/url]7 |[url=http://www.waysfocus.com/index2?curnum=${curnum }&str1=${str1}&str2=${str2}&sx=4]尾页[/url]8 [/align]
复制代码
查询信息主页面分页代码4.1.2 增加新信息的增加碳
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 <script type="text/javascript">                     2 function check() { 3 var name = document.getElementById("bookname").value; 4 var author = document.getElementById("author").value; 5 var pubish = document.getElementById("pubish").value; 6 var pages = document.getElementById("pages").value; 7 var price = document.getElementById("price").value; 8   9 function isInteger(obj) {10     return typeof obj === 'number' && obj%1 === 011 }12 13 if(name.length < 1){14     alert("书名不能为空");15     return false;16 }else if(author.length                    javax.servlet            jstl                                    org.springframework.boot            spring-boot-starter-tomcat            provided                                    org.apache.tomcat.embed            tomcat-embed-jasper            provided              
复制代码
pom.xml 4.3.4 设备 application.properties 文件
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. #mysqlspring.datasource.url=jdbc:mysql://localhost:3306/j2ee?serverTimezone=UTC&characterEncoding=utf8spring.datasource.password=rootspring.datasource.username=rootspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#mybatismybatis.mapper-locations=classpath:com/debj/mappers/*.xml#JSPspring.mvc.view.prefix=/WEB-INF/jsp/spring.mvc.view.suffix=.jsp
复制代码
application.properties4.3.5 建立主包,建立 APP.java 文件
4.3.6 建立主包下的子包 controller、dao、pojo、service
4.3.7 在 resources 建立 mqpper.xml 子文件,位于 resources \ com \ debj \ mappers
4.4 具体细节实现
4.4.1 pojo
编写实体类 Books.java 并封装属性
4.4.2 dao
在 BooksDao 接口中,写方式
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 public List Initialization();
复制代码
BooksDao 接口代码示例4.4.3 service
利用 @Service 注解,在 BooksService 包中实现 BooksDao 中的方式
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 public List Initialization(){2     return booksDao.Initialization();        3 }
复制代码
service 中代码示例4.4.4 resources
建立子文件夹 com \ **** \ mappers,建立 BooksMapper.xml 在此文件中编写数据库查询语句
注:倡议利用  标签,即避免数据库列名与实体类列名不齐截致使毛病。其中 column 为数据库列名 property 为实体类属性名
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1  2      3      4      5      6      7  8  9 10 11     select * from books order by createDate DESC limit 0,312
复制代码
mappers 示例代码4.4.5 controller
建立 BooksController.java,利用诠释 @Controller 编写 @GetMapping / @PostMapping 等。
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 //初始化页面 2 @GetMapping("/index") 3 public String index(Model model) { 4     // 总页数 5     int pagecount = bookService.getPageCount(); 6     pagecount = pagecount%3==0?pagecount/3:pagecount/3+1; 7     model.addAttribute("pagecount",    pagecount); 8     // 初始页数 9     model.addAttribute("curnum","1");10     // 返回值11     List = bookService.Initialization();12     model.addAttribute("list", List);13         14     return "SelectBooks";15 }
复制代码
controller 代码示例4.4.6 注:
需要利用实体类 Books 的工具中的类,倡议利用 @Autowired 注解
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 @Autowired2 BooksDao booksDao;
复制代码
@Autowired 示例五、项目功用实现
5.1 JavaScript 考证模块
表单中增加  属性,在  标签中编写 JavaScript 考证代码。
5.2 增加新信息页面判定页数能否为整数
5.2.1 方式一:按照输入的数据判定其能否为数据典范且为整型
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 var pages = document.getElementById("pages").value;2 3 function isInteger(obj) {4     return typeof obj === 'number' && obj%1 === 05 }6 if(!isInteger(pages)) {7     alert("价格必须是数字典范");8     return false;9 }
复制代码
方式一5.2.1 方式二:input 标签的 type 典范设为 number 即数值典范
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1
复制代码
方式二5.3 暗昧查询
注:参考分页具体实现
5.4 分页具体实现
  5.4.1 mapper 代码实现查询段
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 2 3 SELECT * From books where ${param1} like '%${param2}%'  order by createDate DESC limit ${param3},34 5
复制代码
mappers 分页代码5.4.2 controller 中控制查询代码实现
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 @RequestMapping("/index2") 2 public String getAllBooksInfoByStr( 3         @RequestParam("str1") String str1, 4 @RequestParam("str2") String str2, 5 @RequestParam("curnum") String curnum, 6 @RequestParam("sx") String sx, 7     Model model) { 8 int pagecount=0; 9 10 // 保存参数11 model.addAttribute("str1", str1);12 model.addAttribute("str2", str2);13 14 // 返回值15 if(str1.length()>1) {16     // 总页数17 pagecount = bookService.getTypePageCount(str1,str2);18 pagecount = pagecount%3==0?pagecount/3:pagecount/3+1;19 model.addAttribute("pagecount",    pagecount);20 }else {21     // 总页数22 pagecount = bookService.getPageCount();23 pagecount = pagecount%3==0?pagecount/3:pagecount/3+1;24 model.addAttribute("pagecount",    pagecount);25 }26 27 // 初始页数28 if(sx.equals("1")){29 // 上一页            30 if(curnum.equals("1")){31 curnum="1";32 model.addAttribute("curnum", curnum);33 }else {34     curnum = String.valueOf(Integer.valueOf(curnum)-1);35     model.addAttribute("curnum", curnum);                36     }37 }else if(sx.equals("2")){38 // 下一页39 if(curnum.equals(String.valueOf(pagecount))){40     model.addAttribute("curnum", curnum);41 }else {42     curnum = String.valueOf(Integer.valueOf(curnum)+1);43     model.addAttribute("curnum", curnum);                44     }45 }else {46     curnum= "1";47 model.addAttribute("curnum", curnum);        48 }49 // 首尾页50 if(sx.equals("0")) {51 curnum="1";52 model.addAttribute("curnum", curnum);53 }54 if(sx.equals("4")) {55 curnum=String.valueOf(pagecount);56 model.addAttribute("curnum", curnum);57 }58 int curnumm = Integer.parseInt(curnum);        59 60 // 返回值61 if(str1.length()>2) {62     List = bookService.getCSTypeBoksInfo(str1,str2,(curnumm-1)*3);63 }else {64     List = bookService.getCSInfo((curnumm-1)*3);65 }66 model.addAttribute("list", List);67 return "SelectBooks";    68 }
复制代码
Controller 分页代码5.5 controller 中获得系统时候
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ContractedBlock
我的关键词 SSM 轻量级框架构建:图书治理系统  热门消息 ExpandedBlockStart
  1. 1 Date time = new Date(System.currentTimeMillis());2 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");3 String current = sdf.format(time);
复制代码
获得系统时候六、总结1、JavaScript 写在  标签中,form 表单中增加  属性。既,在表单提交时,挪用 JavaScript 中的返回值典范为 boolean 型的 check() 方式,此处返回典范报酬筹划返回典范。2、查询数据库信息,为避免乱码。在 application.properties 中的 #mysql --> spring.datasource.url 后增加 characterEncoding=utf8 若已经有此外语句则在此句前加“&”。
免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表