1.1使用SSM(SpringMVC+Spring+MyBatis)实现图书信息管理系统,MySQL5.5作为后台数据库,该系统包括查询图书信息功能和增加图书信息功能
1.2查询页面效果图
1.3添加新信息页面效果图
2、查询页面要求
分析:在controller的的初始页面里便要给出List结果集。分面即是显示从第N条至第N每条中的四条数据。降序是orderby加个desc
分析:两个输入框只有二种情况,即是全部查询和模糊查询两种情况。若仅出现单个查询条件,则默认查询全部信息
3、添加新图书页面要求
3.1点击“增加新书”超链接跳转到增加新书页面。点击“返回”超链接返回图书信息管理系统首页。输入图书信息,使用JavaScript验证所有项不能为空,页数必须是整数,价格必须是数字类型
分析:页面的跳转因无特别要求,则使用<\a>标签即可,JavaScript则要先获取所有输入框中的对象,再取值判断是否合法
分析:添加后直接跳转到主页面,默认显示所有信息,并且给出添加结果的反馈信息
二、架构设计思路
三、数据库设计
四、项目框架搭建
4.1jsp页面实现
4.1.1查询信息的主页面
1
注:后续将jsp页面保存至webapp\WEB-INF\jsp中,此处可先至H5中编写
大体代码与css样式4.2配置文件实现
4.2.2配置Maven中的\conf\settings.xml中的
4.3工程架构实现
4.3.1创建Mavenproject的webapp工程
4.3.2修复工程jdk版本并更新Maven工程
4.3.3配置pom.xml文件
#mysqlspring.datasource.url=jdbc:mysql://localhost:3306/j2eeserverTimezone=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=.jspapplication.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.1pojo
编写实体类Books.java并封装属性
4.4.2dao
在BooksDao接口中,写方法
1publicList
使用@Service注解,在BooksService包中实现BooksDao中的方法
1publicList
创建子文件夹com\****\mappers,创建BooksMapper.xml在此文件中编写数据库查询语句
注:建议使用
1
创建BooksController.java,使用注释@Controller编写@GetMapping/@PostMapping等。
1//初始化页面2@GetMapping("/index")3publicStringindex(Modelmodel){4//总页数5intpagecount=bookService.getPageCount();6pagecount=pagecount%3==0pagecount/3:pagecount/3+1;7model.addAttribute("pagecount",pagecount);8//初始页数9model.addAttribute("curnum","1");10//返回值11List=bookService.Initialization();12model.addAttribute("list",List);1314return"SelectBooks";15}controller代码示例4.4.6注:
需要使用实体类Books的对象中的类,建议使用@Autowired注解
1@Autowired2BooksDaobooksDao;@Autowired示例五、项目功能实现
5.1JavaScript验证模块
表单中添加onsubmit="returncheck()"属性,在
标签中编写JavaScript验证代码。5.2添加新信息页面判断页数是否为整数
5.2.1方法一:根据输入的数据判断其是否为数据类型且为整型
1varpages=document.getElementById("pages").value;23functionisInteger(obj){4returntypeofobj==='number'&&obj%1===05}6if(!isInteger(pages)){7alert("价格必须是数字类型");8returnfalse;9}方法一5.2.1方法二:input标签的type类型设为number即数值类型
1
注:参考分页具体实现
5.4分页具体实现
5.4.1mapper代码实现查询段
12