当前位置:主页 > 查看内容

【SSM整合:图书信息管理系统】Spring+SpringMVC+MyBatis简易CRU

发布时间:2021-05-25 00:00| 位朋友查看

简介:前言此项目是前段时间学习自视频https://www.bilibili.com/video/BV1RE41127rv 如今已过多日为了再次回顾便写下此文与大家一起分享此项目很有代表性也是一个非常适合整合SSM的入门友好型项目 文章目录 一、环境与配置 二、项目编写 1、数据库部分 2、Java后……

前言:此项目是前段时间学习自视频https://www.bilibili.com/video/BV1RE41127rv
如今已过多日,为了再次回顾,便写下此文,与大家一起分享,此项目很有代表性,也是一个非常适合整合SSM的入门友好型项目

一、环境与配置

因环境配置相对繁琐,而且复用性也强,因此单独抽成了一篇文章

可参考之前文章:【可复用——笔记】SSM框架搭建(骨架)
在这里插入图片描述
在这里插入图片描述

二、项目编写

1、数据库部分

在这里插入图片描述

2、Java后端部分

(1)POJO实体类

实体类的属性要与数据库表中的字段一一对应,从而避免后期需要通过配置来手动使其一一对应的麻烦
在这里插入图片描述

(2)Dao层

1、编写Mapper接口,之后用Mapper.xml实现对应接口方法的SQL语句,从而生成Mapper接口的实现方法,与数据库进行信息交换
在这里插入图片描述
2、Mapper.xml,按Mapper类中的接口信息,来编写每个接口方法与数据库信息交互的对应SQL语句(通过标签的id属性对应接口方法名),注意 parameterType属性与resultType属性在不同标签中或是不同接口方法的实现中的应用

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zlc.dao.BookMapper">

    <select id="queryBookById" resultType="book">
        SELECT bookId, bookName, bookCount, detail
        FROM book
        WHERE bookId = #{bookId}
    </select>

    <select id="queryAllBook" resultType="book">
        SELECT bookId, bookName, bookCount, detail
        FROM book
    </select>

    <insert id="addBook" parameterType="book">
        INSERT INTO book (bookName, bookCount, detail)
        VALUES (#{bookName}, #{bookCount}, #{detail})
    </insert>

    <delete id="deleteBookById" parameterType="int">
        DELETE FROM book
        WHERE bookId = #{bookId}
    </delete>

    <update id="updateBook" parameterType="book">
        UPDATE book
        SET bookName = #{bookName}, bookCount = #{bookCount}, detail = #{detail}
        WHERE bookId = #{bookId}
    </update>

    <select id="queryBookByName" parameterType="string" resultType="book">
        SELECT bookName, bookCount, detail
        FROM book
        WHERE bookName = #{bookName}
    </select>

</mapper>

(3)Service层

1、编写Service层接口,Service层位于MVC三层架构的中间部分,向下利用Dao层提供的接口实现方法,向上又为Controller层提供服务

(注:下图中,增加,删除,更新一本书的返回值也可以是boolean型的变量,标识是否操作成功(当然也得看事务提交是否配置成功))
在这里插入图片描述
2、编写Service层接口的实现类,Service层要利用Dao层的实现类去调用方法与数据库进行信息交互
在这里插入图片描述

(4)Controller层

1、编写Controller层的控制类,Controller层首先将请求进行分类(当然,下图中用更加具体的注解,如@GetMapping,@PostMapping或@DeleteMapping等是更好的选择),一个请求对应一个方法,并利用Service层提供的接口方法的实现来进行对应操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、JSP前台部分 + 各功能详解

(1)书籍展示

从启动 Tomcat 后的第一个页面介绍起

如下是 index.jsp 页面
在这里插入图片描述
上图的蓝色超链接的编写如下,${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> ,也就是取出部署的应用程序名或者是当前的项目名称
在这里插入图片描述
从而再拼接/book/allBook请求,传给Controller层的控制器,实现list方法的调用,并调用Service层的服务,将所有数据的数据从数据库中返回
在这里插入图片描述
上图中的所有书籍的数据信息装入model中,使得前台jsp页面可以取出model中的属性,从而得到后台查询出的书籍信息
在这里插入图片描述

页面显示如下
在这里插入图片描述

(2)书籍查询

输入书籍名称,即可进行书籍查询操作
在这里插入图片描述
查无此书时,也会提示错误信息
在这里插入图片描述

右侧书籍查询表单的编写如下,
在这里插入图片描述
对应Controller层的响应方法如下,也是调用Service层的方法,并利用model进行键值的传递,注意最后是用请求转发的方式,而此处不能用重定向的方式,否则相当于又请求了一次/allBook,将全部书籍装入model的list属性对应值中,即方法没有发挥作用,这种情况要避免
在这里插入图片描述

(2)书籍更改

点击没本书后的更改操作
在这里插入图片描述
更改链接的编写如下,此处先用传统方式,而之后用 RESTful 风格再编写删除操作的请求
在这里插入图片描述

可跳转到 updateBook.jsp 页面,请求中也附带所更改书籍的id,可重新定义书籍的信息(id除外)
在这里插入图片描述
跳转到此 jsp 页面对应Controller层的请求如下,并将此书籍信息查出,加入model中,便于前台对书籍当前信息的显示,以及在此基础上的更改
在这里插入图片描述

刚跳转过来后,text框中之所以会显示当前书籍的信息,是因为已传递了文本框的默认value值
在这里插入图片描述
更改完信息后,提交表单
在这里插入图片描述
处理请求,并重定向到书籍展示页面,发起book/allBook请求,查询全部书籍,从而刷新为当前最新的书籍信息情况
在这里插入图片描述

(3)书籍添加

点击新增
在这里插入图片描述
此链接的编写如下
在这里插入图片描述
此请求处理中,只进行视图的跳转
在这里插入图片描述
跳转到新增书籍页
在这里插入图片描述

上图表单的请求如下
在这里插入图片描述

处理新增书籍的表单的请求,将书籍添加入数据库book表后,便重定向页面到书籍展示页
在这里插入图片描述
添加成功
在这里插入图片描述

(4)书籍删除

点击每个书籍行最后的删除标签即可在数据库中删除此书籍
在这里插入图片描述
此处,用 RESTful 风格传递请求
在这里插入图片描述
处理删除书籍的表单的请求,将书籍从数据库book表中删除后,便重定向页面到书籍展示页
在这里插入图片描述
删除成功
在这里插入图片描述
在这里插入图片描述

;原文链接:https://blog.csdn.net/m0_46360532/article/details/115506122
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:centos修改网卡为eth0操作步骤详解 下一篇:没有了

推荐图文


随机推荐