MVC模式

image.png image.pngimage.png

三层架构

image.png
表现层View 展示页面- -后端包名controller
逻辑层service 逻辑处理 - - 后端包名service
访问层 dao层 访问数据库— 后端包名mapper/dao
image.png

SSM

image.png

案例:

image.png

准备环境

image.png
创建maven项目

  1. 在pom文件中加入打包<packaging>war</packaging>

image.png

  1. 引入各个依赖坐标

image.png

  1. 使用tomcat 添加war包 以及添加webapp文件和xml配置文件

image.png

  1. 创建实体类

image.png

  1. 创建实体类Mapper接口和Mapper.xml接口

image.png image.png

查询所有

image.png

  1. 在BrandMapper Dao层添加selectAll()方法
    1. 使用注解@Select查询
    2. 因为字段不匹配所以在xml文件中配置resultMap
    3. 调用@ResultMap参数是对应的id

image.png

  1. 创建工具类SqlSeesionFactoryUtils
    1. 方便代码复用全局调用
    2. 创建静态代码块只执行一次不能重复调用

image.png

  1. 创建service层类封装Dao层方法为业务方法
    1. 实例SqlSessionFactory工厂类对象并提取作用域
    2. 使用sqlSessionFactory工厂类调用getsqlSessionFactory()方法
    3. 封装selectAll()方法里面调用对应Dao层Mapper里面的方法

image.png

  1. 创建view层和servlet接口层
    1. 先创建index.html跳转页面

image.png

  1. web包下创建对应的SelectServlet接口
    1. 实力对应Service层对象
    2. 调用service层封装的方法
    3. 将获取的数据使用request.setAttribute(“brands”,brands);封装到域
    4. 并将数据转发到对应的brand.jsp页面中

image.png

  1. 创建对应的brand.jsp对象
    1. 使用c:forEach循环对应的数据
    2. 并渲染到页面

image.png

添加数据

image.png
image.png

  1. 在Mapper层接口定义方法

image.png
使用@Insert注解写插入语句
id自增参数为null

  1. 在Service层封装Mapper层方法

image.png
因为是增删改操作需要开启数据库事务操作commit()
并且释放资源close()

  1. 在brand.jsp商品页面添加新增按钮

image.png

  1. 添加script方法调用该按钮方法跳转到指定页面

image.png

  1. 创建添加方法页面addBrand.jsp

image.png

  1. 最后在web层创建AddServlet接口Servlet文件

image.png

  1. POST请求传递参数需要使用setCharacterEncoding()解决中文乱码问题
  2. request.getParameter()获取将页面的数据
  3. 将页面的数据封装到实体类
  4. 调用对应service层封装的add方法
  5. 将数据使用getRequestDispatcher()转发到查询所有页面保存

    修改数据-数据回显

    image.png
    image.png
  1. 在对应的Mapper层创建修改方法SelectById

image.png

  1. 在Service层封装dao层方法

image.png

  1. 添加Servlet接口
    1. request获取数据并封装到实体类
    2. 调用封装查询id方法
    3. 在转发到查询接口页面

image.png

  1. 编辑对应的接口页面
    1. 默认选中属性为check
    2. 调用方法id返回封装的实体层数据并回显
    3. 回显数据判断status状态c:if判断启用禁用

image.png

修改数据-修改数据

image.png
image.png

  1. 创建对应Mapper层方法
    1. 与add方法类似 使用Update语句
    2. 添加id查询条件,根据id查询需要修改的数据
    3. 字段和where条件不加,

image.png

  1. 在Service层封装方法

image.png

  1. 创建对应的servlet接口文件
    1. 需要添加id字段
    2. 页面需要id返回值

image.png

  1. 创建对应JSP页面
    1. 因为修改页面需要数据回显id
    2. 所以在页面添加id字段
    3. 但是不能将id显示出来使用hidden隐藏标签数据

image.png

删除数据

  1. 在对应的Mapper层写方法
    1. 定义@Delete删除语句
    2. 根据ID删除

image.png

  1. 在Service层封装业务方法

image.png

  1. 在web层添加对应的接口
    1. 获取页面id值
    2. 调用删除方法
    3. 将数据转发给对应的查询所有层

image.png

  1. 在对应brand商品页面添加删除按钮并获取对应的id

image.png