框架整合——SSM(SpringMVC+Spring+MyBatis)CRUD(增删改查)Demo

一、SSM框架中各层级间的作用及关系

表现层(springMVC):Controller层(Handler层)
负责具体的业务模块流程的控制
Controller层通过要调用Service层的接口来控制业务流程,控制的
配置也在Spring配置文件里面。

业务层(Spring):Service层
Service层:负责业务模块的逻辑应用设计。
首先设计其接口,然后再实现他的实现类。
通过对Spring配置文件中配置其实现的关联,完成此步工作,我们
就可以通过调用Service的接口来进行业务处理。
最后通过调用DAO层已定义的接口,去实现Service具体的 实现类。

持久层(Mybatis):Dao层(Mapper层)
Dao层:负责与数据库进行交互设计,用来处理数据的持久化工作。
DAO层的设计首先是设计DAO的接口,
然后在Spring的配置文件中定义此接口的实现类,就可在其他模块中
调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是
哪个类,这里用到的就是反射机制, DAO层的数据源配置,以及有
关数据库连接的参数都在Spring的配置文件中进行配置。

视图层:View层
负责前台jsp页面的展示。
此层需要与Controller层结合起来开发。

各层间的联系:
本来Controller层与View层是可以放在.jsp文件里一起开发的,但是为了降低代码的复杂度,提高其可维护性,将其分为了这两层,这也体现了MVC框架的特性,即结构清晰,耦合度低。

Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

二、三层架构运行流程

这里写图片描述

三、SSM整合-CRUD(增删改查) Demo

1、功能点

  • 分页
  • 数据校验(jquery前端校验+JSR303后端校验)(最好加上数据库约束)
  • ajax
  • Rest风格的URL;使用HTTP协议请求方式的动词,来表示对资源的操作(GET(查询),POST(新增),PUT(修改),DELETE(删除))

2、技术点

  • 基础框架-SSM(SpringMVC+Spring+MyBatis)
  • 数据库-MySQL
  • 前端框架-bootstrap快速搭建简洁美观的界面
  • 项目的依赖管理-Maven
  • 分页-pagehelper
  • 逆向工程-MyBatis Generator

3、基础环境搭建

3.1、创建一个maven webapp工程
这里写图片描述
3.2、引入项目依赖的jar包

  • spirng
  • springmvc
  • mybatis
  • 数据库连接池,驱动
  • 其他(jstl,servlet-api,junit)

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.sao</groupId>
    <artifactId>MySSMDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!-- SpringMVC、Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!-- Spring-Jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!--Spring-test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!-- Spring面向切面编程 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!--MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.2</version>
        </dependency>
        <!-- MyBatis整合Spring的适配包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- 数据库连接池、驱动 -->
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.41</version>
        </dependency>
        <!-- (jstl,servlet-api) -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        <!--引入pageHelper分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.0.0</version>
        </dependency>
        <!-- 返回json字符串的支持 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.8</version>
        </dependency>
    </dependencies>

</project>

3.3、引入bootstrap前端框架

bootstrap官网下载
这里写图片描述

将下载的包解压放入项目,以及添加jquery-3.3.1.min.js

这里写图片描述

4、编写SSM整合的关键配置文件

4.1、目录结构
这里写图片描述
4.2、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="WebApp_ID" version="2.5">

    <!--1、启动Spring的容器  -->
    <!-- needed for ContextLoaderListener -->
    <context-param>
        <pa
  • 6
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值