MVC模式
三层架构
表现层View 展示页面- -后端包名controller
逻辑层service 逻辑处理 - - 后端包名service
访问层 dao层 访问数据库— 后端包名mapper/dao
SSM
案例:
准备环境
创建maven项目
- 在pom文件中加入打包<packaging>war</packaging>
- 引入各个依赖坐标
- 使用tomcat 添加war包 以及添加webapp文件和xml配置文件
- 创建实体类
- 创建实体类Mapper接口和Mapper.xml接口
查询所有
- 在BrandMapper Dao层添加selectAll()方法
- 使用注解@Select查询
- 因为字段不匹配所以在xml文件中配置resultMap
- 调用@ResultMap参数是对应的id
- 创建工具类SqlSeesionFactoryUtils
- 方便代码复用全局调用
- 创建静态代码块只执行一次不能重复调用
- 创建service层类封装Dao层方法为业务方法
- 实例SqlSessionFactory工厂类对象并提取作用域
- 使用sqlSessionFactory工厂类调用getsqlSessionFactory()方法
- 封装selectAll()方法里面调用对应Dao层Mapper里面的方法
- 创建view层和servlet接口层
- 先创建index.html跳转页面
- web包下创建对应的SelectServlet接口
- 实力对应Service层对象
- 调用service层封装的方法
- 将获取的数据使用request.setAttribute(“brands”,brands);封装到域
- 并将数据转发到对应的brand.jsp页面中
- 创建对应的brand.jsp对象
- 使用c:forEach循环对应的数据
- 并渲染到页面
添加数据
- 在Mapper层接口定义方法
使用@Insert注解写插入语句
id自增参数为null
- 在Service层封装Mapper层方法
因为是增删改操作需要开启数据库事务操作commit()
并且释放资源close()
- 在brand.jsp商品页面添加新增按钮
- 添加script方法调用该按钮方法跳转到指定页面
- 创建添加方法页面addBrand.jsp
- 最后在web层创建AddServlet接口Servlet文件
- POST请求传递参数需要使用setCharacterEncoding()解决中文乱码问题
- request.getParameter()获取将页面的数据
- 将页面的数据封装到实体类
- 调用对应service层封装的add方法
- 将数据使用getRequestDispatcher()转发到查询所有页面保存
修改数据-数据回显
- 在对应的Mapper层创建修改方法SelectById
- 在Service层封装dao层方法
- 添加Servlet接口
- request获取数据并封装到实体类
- 调用封装查询id方法
- 在转发到查询接口页面
- 编辑对应的接口页面
- 默认选中属性为check
- 调用方法id返回封装的实体层数据并回显
- 回显数据判断status状态c:if判断启用禁用
修改数据-修改数据
- 创建对应Mapper层方法
- 与add方法类似 使用Update语句
- 添加id查询条件,根据id查询需要修改的数据
- 字段和where条件不加,
- 在Service层封装方法
- 创建对应的servlet接口文件
- 需要添加id字段
- 页面需要id返回值
- 创建对应JSP页面
- 因为修改页面需要数据回显id
- 所以在页面添加id字段
- 但是不能将id显示出来使用hidden隐藏标签数据
删除数据
- 在对应的Mapper层写方法
- 定义@Delete删除语句
- 根据ID删除
- 在Service层封装业务方法
- 在web层添加对应的接口
- 获取页面id值
- 调用删除方法
- 将数据转发给对应的查询所有层
- 在对应brand商品页面添加删除按钮并获取对应的id