SSM框架整合

SSM框架整合就是分别实现Spring与SpringMVC、Spring与Mybatis的整合,而实现整合的主要工作就是把SpringMVC、Mybatis中的对象配置到Spring容器中,交给Spring来管理。

搭建步骤:
1、 新建项目并导入jar文件
整体结构:
java、resources文件夹创建更新(若没有),java中新建文件包后,再并列新建包:
实体类entity、接口mapper(dao)、服务层service、控制层controller、测试util(反向工程工具或测试类)

2、 web.xml配置:
2.1配置DispatchServlet
Spring MVC是基于servlet的框架,DispatchServlet是整个Spring MVC框架的核心,它负责截获请求并将其分派给相应的处理器处理。
2.2配置解决乱码的过滤器
2.3启动spring容器
引入applicationContext.xml(路径),指定spring配置文件位置并配置ContextLoaderListener

3、配置文件(/resources)
3.1 applicationContext.xml
它是Spring的配置文件:主要配置信息有数据源对象、事务管理,以及Mybatis的配置信息等。
a. 数据源相关配置:使用一类数据源如BasicDataSource, 读取sql四要素 ,
定义SqlSessionFactoryBean
b. 生成Dao(Mapper)接口的实现bean对象MapperScannerConfigurer:
扫描Dao层接口(包), 添加sqlSessionfactroy
c. 扫描业务层(包)如**.service.impl
d. 事务管理 DataSourceTransactionManager
3.2 mybatis.xml配置
a. 别名设置typeAliases
b.分页插件PageInterceptor
c.加载sql映射文件**/RoomMapper.xml
3.3 springmvc.xml
a.添加扫描注解控制器**.controller
b. 注解驱动mvc:annotation-driven/
c. 视图解析器 InternalResourceViewResolver
d. 其他如文件上传设置CommonsMultipartResolver
e.静态资源放行mvc:default-servlet-handler/

4、 反向工程
通过反向工程自动生成mapper接口、mapper.xml和entity实体类。
在service包中新建service接口和实现类。其中service的实现类Impl主要代码:
@Service
@Transactional //事务
public class RoomServiceImpl implements RoomService{
@Autowired //自动注入
private RoomMapper roomMapper;
@Override //查询所有
public List getRooMAll() {
return roomMapper.getRooMAll();
}
@Override //新增插入
public int insert(Room record) {
return roomMapper.insert(record);
}
@Override //根据id删除
public int deleteByPrimaryKey(Integer rid) {
return roomMapper.deleteByPrimaryKey(rid);
}
@Override //根据id选择(修改功能用)
public Room selectByPrimaryKey(Integer rid) {
return roomMapper.selectByPrimaryKey(rid);
}
@Override //修改(提交页面时实现修改数据库)
public int updateByPrimaryKeySelective(Room record) {
return roomMapper.updateByPrimaryKeySelective(record);
}
@Override //分页功能,入参当前页(起始页),每页条数
public PageInfo getRoomByPage(int page, int pageSize) {
//开启分页支持
PageHelper.startPage(page,pageSize);
List list = roomMapper.getRooMAll();
PageInfo pageInfo=new PageInfo(list);
return pageInfo;
}
}

5、控制层controller
@Controller
public class RoomController {
@Autowired
private RoomService roomService;

@RequestMapping("/showRoom") //查询所有
public String getRoom(Model model) throws Exception{
List roomList=roomService.getRooMAll();
model.addAttribute(“roomList”,roomList);
return “index”;
}

@RequestMapping("/showRoom2") //分页实现
public String getRoom2(Integer page, Model model) throws Exception{
//判断没有传页码时给第1页
page=page==null?1:page;
PageInfo pageInfo=roomService.getRoomByPage(page,4);

model.addAttribute(“pageInfo”,pageInfo);
return “index2”;
}
@RequestMapping("/addGrade") //新增添加
public String addRoom(Room record) throws Exception{
int i = roomService.insert(record);
if (i<0){
return “error”;
}else {
return “redirect:showRoom”; //重定向
}
}
@RequestMapping("/delGrade") //删除
public String delRoom(Integer rid) throws Exception{
int i = roomService.deleteByPrimaryKey(rid);
if (i<0){
return “error”;
}else {
return “redirect:showRoom”;
}
}
@RequestMapping("/getGrade") //修改
public String updateRoom(Integer rid,Model model) throws Exception{
Room room = roomService.selectByPrimaryKey(rid);
model.addAttribute(“room”,room);
return “update”; //进入修改页面
}

@RequestMapping("/updateGrade") //修改页面编辑后,提交给数据库完成修改
public String updateRoomById(Room room) throws Exception{
int i = roomService.updateByPrimaryKeySelective(room);
System.out.println((i>0?“修改成功!”:“修改失败!”));
return “redirect:showRoom”; //修改完毕重定向,更新后回到展示所有页面
}
}

6、视图(View)
基于系统安全考虑,前端的jsp页面全部放置在/WEB-INF目录下(或再新建jsp文件夹)
Index.jsp页面参考:
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

<html>
<head><title>班级信息管理</title>
</head>
<body>
<div align="center">
<h2>年级信息表</h2>
<table border="1"><tr><td>年级编号</td><td>名称</td><td>操作</td></tr><c:forEach items="${pageInfo.list}" var="r"><tr><td>${r.rid}</td><td>${r.rname}</td><td><a href="delGrade?rid=${r.rid}">删除</a><a href="getGrade?rid=${r.rid}">修改</a><a href="showStudentinfo?rid=${r.rid}">查看学生</a></td></tr></c:forEach>
</table><a href="add.jsp">添加年级</a><br/>
<br/>
<a href="/showRoom2?page=1">首页</a>
<a href="/showRoom2?page=${pageInfo.prePage==0?1:pageInfo.prePage}">上一页</a>
<a href="/showRoom2?page=${pageInfo.pageNum==pageInfo.pages?pageInfo.pages:pageInfo.nextPage}">下一页</a>
<a href="/showRoom2?page=${pageInfo.pages}">尾页</a>
<br/>
<br/>
请选择页面:<input type="button" value="<"><c:forEach begin="1" var="i" end="${pageInfo.pages}" step="1"><a href="/showRoom2?page=${i}">${i}</a>
</c:forEach><input type="button" value=">"><select onchange="location.href='showRoom2?page='+this.value;"><c:forEach begin="1" var="i" end="${pageInfo.pages}" step="1"><option <c:if test="${pageInfo.pageNum==i}">selected="selected"</c:if> value="${i}">第${i}页</option></c:forEach>
</select>
<br/>
<br/>当前是第${pageInfo.pageNum}页,共${pageInfo.pages}页。每页${pageInfo.pageSize}条,共${pageInfo.total}条记录。<br/>
</div></body>
</html>

7、案例截图

SSM框架整合步骤思路及案例分析相关推荐

  1. IDEA优雅整合Maven+SSM框架(详细思路+附带源码)

    前言: 网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依 ...

  2. SSM框架整合完整案例

    SSM框架整合 一.整合思路 二.案例实战 1. 项目前期准备 2. 整合dao层 ① mybatis全局配置文件(SqlConfig.xml) ② 配置spring.xml ③ 编写POJO类(ja ...

  3. DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)

    DL之Keras:基于Keras框架建立模型实现[预测]功能的简介.设计思路.案例分析.代码实现之详细攻略(经典,建议收藏) 目录 Keras框架使用分析 Keras框架设计思路 案例分析 代码实现 ...

  4. JavaEE——SSM框架整合实现学生信息注册案例

    目录 十.SSM框架整合实现学生信息注册案例 1. 创建06-ssm的web项目 2. 修改web.xml版本为4.0 3. 更新pom.xml文件 4. jdbc的属性文件和日志文件 5. appl ...

  5. java ssm小案例_简易的SSM框架整合小案例

    简易的SSM框架整合小案例 一.创建一个web工程的maven项目 1.项目名随便起 2.选择好你的maven路径,然后finish 二.配置pom.xml文件 org.springframework ...

  6. SSM框架整合+简单案例实现

    SSM框架整合+简单案例实现 文章目录 前言 一.Spring+SpringMVC+Mybatis框架整合 1.建立一个新的web项目 2.所需jar包 3.建立数据库表与实体类之间的映射 4.web ...

  7. SSM Chapter 12 SpringMVC扩展和SSM框架整合

    SSM Chapter 12 SpringMVC扩展和SSM框架整合 笔记 本章目标: 掌握JSON对象的处理 理解数据转换和格式化 了解本地化 掌握Spring MVC+Spring+MyBatis ...

  8. (转)淘淘商城系列——SSM框架整合之Dao层整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72721093 一个项目中往往有三层即Dao层.Service层和Web层,看标题就知道了,本文 ...

  9. ssm框架整合java_ssm框架整合

    ssm(springmvc+spring+mybatis整合) 1.整合思路 项目分层: 表现层:springmvc(controller) 业务层:service 持久层:mybatis(mappe ...

  10. 全栈开发实战 | SSM框架整合完整教程

    "一个人最好的状态:梦想藏在心里,行动落于腿脚." 目录 1.前言 2.基本概念 2.1 MyBatis 2.2 Spring 2.3 SpringMVC 3.开发环境搭建 3.1 ...

最新文章

  1. tensorflow 多输入 多输出 模型
  2. SD-WAN — 核心能力
  3. 关于函数的调用是否加括号的问题
  4. Linux下shell脚本实战之批量新建用户
  5. Layui中Jquery动态设置的select标签加载时而正常时而失效问题排查和解决
  6. linux进程网络均衡,linux多CPU进程负载均衡解析
  7. java arraylist枚举器遍历_Java基础(七)泛型数组列表ArrayList与枚举类Enum
  8. linux cat 文本颜色,linux文本文件查看、展示命令 :cat head tail grep more less nl
  9. C语言编程规范--代码注释
  10. Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
  11. 99.6%屏占比 vivo NEX 3升级版入网:865+55W快充
  12. python类概念是什么_python中类的概念
  13. 搞定 Linux 命令之进程与数据流,不服来辩!| 原力计划
  14. 什么是 Elasticsearch?一篇搞懂
  15. iOS-高德地图-热力图
  16. 软考中级(系统集成项目管理工程师)(备考用)
  17. qlv转MP4(笨方法,大用途)
  18. 计算机一级死都过不了怎么办,电脑假死,详细教您电脑假死机怎么处理
  19. android手机赚钱软件排行
  20. opencv-python中 boundingRect(cnt)以及cv2.rectangle用法

热门文章

  1. 协方差矩阵及其计算方法
  2. openGauss数据库备份恢复指导手册
  3. 域名和IP地址的区别
  4. 搭建服务器中转视频加速,高清视频站服务器的秘密诀窍:G口独享带宽不限流量+高速SSD...
  5. 怎样自学unity是效率最高的
  6. 2013年04月12日 JavaEE+物联云计算就业班-上海
  7. 谷歌创建新账号时手机号码无法验证
  8. Dell vostro 3667重装系统
  9. 23 种设计模式的通俗解释,看完秒懂
  10. mac虚拟机服务器设置u盘启动不了怎么办,苹果MacBook Air u盘启动不了怎么办?