-
- 2.1. 在mysql中创建表
- 2.2. 新建maven项目
- 2.3. 写web.xml
- 2.4. 创建包
- 2.5. 写spring,springmvc,mybatis的配置文件
- 2.6. 写接口及实现类
- 2.7. 写jsp页面(可选)
SSM整合
ssm整合也叫作SSI(Ibatis也就是mybatis的前身),整合中有容器:
- 第一个容器是springmvc容器,管理Controller控制器对象
- 第二个容器spring容器,管理Service,Dao,工具类对象
我们所要做的就是把使用的对象交给合适的容器创建、管理。
- 把Controller还有web开发的相关对象交给springmvc容器,这些web用的对象写在springmvc配置文件中。
- service,dao对象定义在spring配置文件中,让spring管理这些对象
1. spring容器和springmvc容器的关系
spingmvc容器是spring容器的子容器,类似于java中的继承,子可以访问父的内容,在子容器中的Controller可以访问父容器中的service对象,就可以实现controller使用service对象
2. 整合步骤
2.1. 在mysql中创建表
创建一个mysql数据库,在里面创建一个表student1,id为自动增量
2.2. 新建maven项目
在idea中新建一个maven 的web项目,在pom文件中加入依赖:springmvc、spring、mybatis三个框架的依赖,jackson依赖,mysql驱动,druid连接池,jsp,servlet依赖
1 | <dependencies> |
加入读取目录的插件,防止在类目录中找不到资源文件
1 | <resources> |
2.3. 写web.xml
- 注册中央调度器,目的:
- 创建springmvc容器对象
- 创建的是servlet,接受用户请求
- 注册spring监听器:ContextLoaderListener,目的是创建spring容器对象
- 注册字符集过滤器,解决post请求乱码问题
1 |
|
注意:如果web.xml版本过低时,需要删除原来web.xml文件,重新生成,调整版本。
2.4. 创建包
创建controller,service,dao,实体类的包(还有异常类,拦截器等等包)。实体类对应的是数据库中表的一行。
2.5. 写spring,springmvc,mybatis的配置文件
在resources目录下新建一个目录conf,保存配置文件。
- 创建mybatis的配置文件mybatis.xml,指明mapper文件所在的包dao的路径,配置别名
1 |
|
- 创建springmvc的配置文件dispatcherServlet.xml,在里面设置注解驱动(ajax,静态资源),指明controller类所在的包;配置视图解析器
1 |
|
- jdbc的属性配置文件
1 | jdbc.url = jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC |
- 创建spring配置文件applicationContext.xml,声明数据源,连接数据库;声明mybatis的扫描器;声明servicce注解,指定service对象所在的包service;配置事务(因为此次简单,没配置事务)
1 |
|
2.6. 写接口及实现类
- 创建实体类Student,属性名和数据库中的对应
1 | package com.hjznb.domain; |
- 写dao接口及其mapper文件,mapper文件中namespace为接口的全限定名称
1 | package com.hjznb.dao; |
因为id为自动增量,所以插入无须指定id
1 |
|
- 写service接口及其实现类,在实现类上加@service注解,自动注入dao对象使用@Autowired注解;调用dao对象的方法来操作。
1 | package com.hjznb.service; |
1 | package com.hjznb.service.impl; |
- 写controller对象,处理前端请求,在类中注入service对象,其方法中调用service的方法。在类的上面加入@Controller注解,用@RequestMapping(“”)指明路径
1 | package com.hjznb.controller; |
为student模块,在类的上面也可以加上RequestMapping(“/student”)
2.7. 写jsp页面(可选)
首先将要使用的静态资源:图片,jquery放入webapp目录下,分别放在images和js目录中。
- index界面,进行查询和插入,使用base标签来设置没有斜杠时的路径问题。
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
- 添加学生页面jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
- 注册成功页面,该页面不能让用户访问,放在WEB-INF目录下,使用转发来访问
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
- 查询学生结果jsp,使用ajax,加载页面的同时会进行查询,点击按钮会重新查询
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
3. 效果
- 欢迎页面
- 点击注册学生,跳转到注册页面
- 输入姓名ssm,年龄13,点击注册,跳转结果页面
- 返回开始页面,点击查询学生,进入查询页面
可以看见学生ssm成功添加到数据库!