文章图片标题

SSM框架搭建教程:图书管理预约系统

分类:java编程 作者:阿流 评论:0 点击: 3,267 次 发布时间:2018-09-25

这是一个手把手教大家如何搭建SpringMVC + Spring + MyBatis框架,并且最终实现了一个Java的图书管理预约系统。此教程有代码部落从网络上收集并整理,如有侵权请通过网站底部的联系方式联系我们,我们将在第一时间删除。相关文章点击查看:

Java图书管理系统 源码下载

asp图书管理系统 源码下载

JAVA GUI图书馆管理系统 Swing AWT 源码下载

基于springboot的小型图书销售系统 源码下载

Servlet应用---实现图书的管理系统eclipse版 源码下载

 

好了,下面直接上最终效果运行截图给大家,在文章结尾还会提供完整的项目代码。

 

程序截图

这是图书管理系统的首页,不用登陆即可查看、搜索系统有已有图书。

 

搜索想要预定的书:

点击详情,进入预定页面,如果没有登陆的话会弹出登陆层,提示输入学号密码,如果用户已经在之前查看某本书的详细时已经登陆,则不会要求再登陆,这里的用户名密码与数据库验证成功后保存在cookie中,且生命周期默认与session相同,即关闭路径窗口后就失效。

 

这是什么都不输入和输入格式不对时,点击submit的提示:

 

登陆后进入预约界面,点击预约后的界面:

 

如果已经对当前书预约过,点击预约会提示重复预约,如果没有库存,点击预约会提示没有库存。

 

预约后点击:查看我的已预约书籍,会显示之前所有预约的信息:

 

 

具体教程

1、利用maven创建文件路径:

利用命令行工具输入:mvn archetype:generate -DgroupId=cn.nize -DarchetypeArtifactId= maven-archetype-webapp -DarchetypeCatalog=internal

2、创建项目包:

3、再然后就是在pom.xml里面注入依赖,maven会自动在网站上下载。关于maven大家可以看看慕课网上的教学视频。

pom.xml

4、做好之前的准备工作后,逻辑理顺,现在就要开始编码啦,首先我们创建数据库!

根据我们的实际情况,在数据库中创建表:
schema.sql

 

5、根据数据库对象创建实体类。

第一个开始填充的类当然是entiy包,他是承接我们从数据库里去除数据的类,或者把该类存入数据库,在这里我们创建两个类,一个是Book包(从数据库取出书后放入该包),一个是Appointment(存放从数据库取出的预约书籍信息)。
Book.java

Appointment.java

因为我们还打算做一个学生ID、密码验证,所以也得有学生类.
Student.java

 

6、创建DAO中的类

DAO包中的类主要功能是实现与数据库交互,所以我们需要大的逻辑是:

  1. 学生类与数据库交互;
  2. 预约是与数据库交互;
  3. 查询书时与时与数据库交互。

这里大致分为几类,等具体写接口时再去细写。还有就是注意,DAO只是与数据库交互,不能写交互组成的逻辑,这个放在service里面。我们应该站在用户的角度设计DAO接口,至于具体怎么用,后面再写。
BookDao.java

AppointmentDao.java

StudentDao.java

7、我们暂时先不管以上接口实现,先为DAO配置入框架,实现spring与mybatis的整合。

因为spring的配置太多,我们这里分三层,分别是dao service web。我们这里先写spring-dao.xml,其他的等我们实现相应包后再去配置。 配置时,主要注意一下几个方面:

  1. 读入数据库连接相关参数(可选)
  2. 配置数据连接池
  3. 配置连接属性,可以不读配置项文件直接在这里写死
  4. 配置c3p0,只配了几个常用的
  5. 配置SqlSessionFactory对象(mybatis)
  6. 扫描dao层接口,动态实现dao接口,也就是说不需要daoImpl,sql和参数都写在xml文件上

spring-dao.xml

配置jdbc.properties文件

 

第一次上传忘记去掉用户名密码了,好险!大家用的时候填上自己的用户名、密码。

配置mybatis。

所以需要配置mybatis核心文件,在recources文件夹里新建mybatis-config.xml文件。

  1. 使用自增主键
  2. 使用列别名
  3. 开启驼峰命名转换 create_time -> createTime

mybatis-config.xml

8、配置实现接口的xml

我们要开始写DAO接口的实现类,因为我们配置扫描sql配置文件路径是:mapper下的xml,所有我们应该在resourse下新建mapper文件夹,在这里存放实现DAO接口的各种xml
BookDao.xml

 

AppointmentDao.xml

 

StudentDao.java

到此为止,我们dao层的开发就算结束了,大家可以写个测试类,测试一下。(我没写,哈哈),要实现预约功能还得有更多详细的逻辑组织,这个功能将他放在service中,他把DAO中与数据库交互的功能组织成可以用的详细逻辑。提供给上层web调用。

8、 service层

首先写service接口类

BookService.java

大家可以看到,这个借口类中基本和DAO中的没啥区别,有区别的是某些类他是在dao上更进一步,需要多个dao类一起组织,或者在加入其它逻辑才能实现
为了实现BookService的借口,我们得写BookServiceImpl类。但是想让我们想想,为了写BookServiceImpl,我们需要什么,上面我们已经写出预约成功的实体类是AppointExecution,所以当然我们得写出该类,因为该类交互service和web,对这类有点像entiy包我们管叫bto包(bto包和其他包一起存放在appoint下)。对于AppointExecution来说,作用就是预约成功后给web层提供返回的信息。(就是返回预约成功、预约失败、无库存、之类的信息)

除此之外,我们在预约图书时可能出现异常,例如重复预约、无库存、和其他异常,我们需要事先设计好异常类,来接收这类异常,方便处理,而不是直接报错。因此在appoint包下新建excption包,报下新建三个类:AppoinException.java;NoNumberException.java;RepeatAppoint.java

AppoinException.java

NoNumberException.java

RepeatAppoint.java

现在可以写接口的实现类啦:BookServiceImpl.java

 

又到了我们写service层配置的时候!

该xml依然位于resourse下的spring包下
spring-service.xml

 

9、web层

现在我们一起看看web层该如何组织。
在写具体的代码之前,先配置web层,在这里主要实现的作用是:

  1. 开启SpringMVC注解模式,可以使用@RequestMapping,@PathVariable,@ResponseBody等
  2. 对静态资源处理,如js,css,jpg等
  3. 配置jsp 显示ViewResolver,例如在controller中某个方法返回一个string类型的"login",实际上会返回"/WEB-INF/login.jsp"
  4. 扫描web层 @Controller

详细见xml中每一步的注释
spring-web.xml

 

当然我们必须修改web.xml文件,它在webapp的WEB-INF下,这个文件配置servlet,并初始化,指定扫描spring相关的配置,最后我们将所有的url都拦截下来。 web.xml

 

因为在运行时,我们经常会查看日志什么的,所以我们把这个配置进去
logback.xml

 

最后我们开始组织我们web的逻辑,也就是具体的controller层代码的编写。
这一层中与我们的前段联系的较为紧密,大家可以边写边看效果,再调试。

 

为了把执行预约逻辑是否返回的不同信息封装起来,我们创建一个Result类,它是类型T的集合。
Result.java

 

为了给web显示预约后的反馈信息,我们建立一个常量数据字典类存放这些要反馈给客户的信息
AppointStateEnum.java

 

到此为止,我们后端写的差不多了,下面是前段页面的开发,其实前段和controller中的方法开发是相互嵌套的,在写方法的同时,写js或者jsp文件。这样逻辑才能连贯。再此用bootstrap这种轻量一站式框架开发前段,能死前端技术不怎么好的童鞋也能开发出还看得过去的页面。
话不多少,我们上代码:
list.jsp

 

detail.jsp

 

bookappointment.js

 

appointBookList.jsp

 

到此为止,所有的开发就已经结束,这篇东西写了整整一个上午也不容易啊。
爱你们,么么哒!





声明: 本文由( 阿流 )原创编译,转载请保留链接: http://www.daimabuluo.com/blog/javacode/435.html

SSM框架搭建教程:图书管理预约系统:等您坐沙发呢!

发表评论