2020-09-28

SSM框架整合

Spring、SpringMVC、Mybatis的基本整合,包含MBG代码自动生成、PageHelper等内容。

完整的SSM整合环境源码见我的Gitee:https://gitee.com/coydone/ssm_crud

搭建整合环境

整合说明:SSM整合可以使用多种方式,建议选择

整合的思路:我们是用Spring框架去整合其它两个框架,先搭建整合的环境,先把Spring的配置搭建完成,再使用Spring整合MyBatis框架,最后使用Spring整合SpringMVC框架。

整合流程

1、创建数据库和表结构

  • grade年级表:字段:年级编号:gid;年级名称:gname。
  • student学生表:字段:学号:xh;学生名:name;年龄:age;性别:sex;birthday:生日;state:状态;地址:address;年级编号:gid。

此为一对多关系的两张表,一个年级有多个学生。

2、创建Maven的javaweb工程

<groupId>com.coydone</groupId><artifactId>ssm_crud</artifactId>

3、创建包结构

src/main下创建文件夹java和resources文件夹,并将其改为源代码目录和资源目录。可以在src下创建test文件夹,将其改为test的测试目录,在test下创建java和resources目录(可以参考Maven工程的目录结构)。

main/java下创建com.coydone包,在其下创建包结构:entity、mapper、service、controller、utils包,可以创建一个test包用于测试。

4、配置pom文件中的环境

  • 配置ssm的所需依赖
  • 配置项目创建和运行的环境
<?

搭建Mybatis的环境

1、编写数据库连接文件db.properties

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/k0503db?useUnicode=true&characterEncoding=utf-8&useSSL=falsejdbc.driverClass=com.mysql.jdbc.Driverjdbc.user=rootjdbc.password=root123

2、编写mybatis配置文件mybatis-config.

<?

我们将Mybatis的配置交给spring的ioc容器进行管理,所以Mybatis中不再配置连接数据库等相关信息。

搭建SpringMVC环境

由于SpringMVC是Spring系列的一部分,Spring对SpringMVC的集成基本上是天然集成。

1、编写springmvc配置文件springmvc.

<?

2、配置web.

<?

使用Spring整合

编写spring的配置文件:applicationContext.

<beans 

使用MBG代码自动生成

1、MBG的generator.

连接的数据库及其设置的数据库表根据自己的需求进行修改即可。

<?

2、MBG的工具类,运行main方法就可以自动生成了。它会帮我们自动生成实体类entity、mapper及其mapper.

package com.coydone.utils;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.

测试整合环境

单元测试

1、测试Spring整合Mybatis环境

package com.coydone.test;import com.coydone.entity.Grade;import com.coydone.entity.Student;import com.coydone.mapper.GradeMapper;import com.coydone.mapper.StudentMapper;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;import java.util.UUID;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext.

2、测试Spring整合SpringMVC环境

package com.coydone.test;import com.coydone.entity.Student;import com.github.pagehelper.PageInfo;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.mock.web.MockHttpServletRequest;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.MvcResult;import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;import org.springframework.test.web.servlet.setup.MockMvcBuilders;import org.springframework.web.context.WebApplicationContext;import java.util.List;//使用spring测试模块提供的测试请求功能,测试请求crud//spring4测试需要servlet3.0的支持@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfiguration@ContextConfiguration(locations = {"classpath:applicationContext.

功能测试

1、业务层接口

package com.coydone.service;import com.coydone.entity.Student;import java.util.List;public interface StudentService { List<Student> getAll();}

2、业务层实现类

package com.coydone.service.impl;import com.coydone.entity.Student;import com.coydone.entity.StudentExample;import com.coydone.mapper.StudentMapper;import com.coydone.service.StudentService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Service("studentService")public class StudentServiceImpl implements StudentService { @Autowired private StudentMapper studentMapper; @Override public List<Student> getAll() {  return studentMapper.selectByExample(new StudentExample()); }}

3、编写控制器

package com.coydone.controller;import com.coydone.entity.Student;import com.coydone.service.StudentService;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import java.util.List;@Controllerpublic class StudentController { @Autowired private StudentService studentService; @RequestMapping("/getAll") public String getAll(Model model){  List<Student> students = studentService.getAll();  model.addAttribute("students",students);  return "index"; } @RequestMapping("/getAll2") //分页查询 public String getAll2(@RequestParam(value = "pn",defaultValue = "1")Integer pn,Model model){  //引入分页插件,在查询之前只需要调用,查询的页码,和每页大小  PageHelper.startPage(pn,5);  //startPage后紧跟的查询就是分页查询  List<Student> students = studentService.getAll();  //使用pageInfo包装查询后的结果,只需要将pageInfo交给页面就行了  //封装了详细的信息,包括查询出来的数据,传入连续显示的页数  PageInfo pageInfo = new PageInfo(students,5);  model.addAttribute("pageInfo",pageInfo);  return "index"; }}

4、编写页面显示数据

<c:forEach items="${students}" var="student"> <tr>  <td>${student.xh}</td>  <td>${student.name}</td>  <td>${student.age}</td>  <td>${student.sex}</td>  <td>${student.birthday}</td>  <td>${student.state}</td>  <td>${student.address}</td> </tr></c:forEach>

原文转载:http://www.shaoqun.com/a/478722.html

auction:https://www.ikjzd.com/w/2311

孙琦:https://www.ikjzd.com/w/1638

e邮包:https://www.ikjzd.com/w/594.html?source=tagwish


Spring、SpringMVC、Mybatis的基本整合,包含MBG代码自动生成、PageHelper等内容。完整的SSM整合环境源码见我的Gitee:https://gitee.com/coydone/ssm_crud搭建整合环境整合说明:SSM整合可以使用多种方式,建议选择整合的思路:我们是用Spring框架去整合其它两个框架,先搭建整合的环境,先把Spring的配置搭建完成,再使用Spri
c88:https://www.ikjzd.com/w/1017.html
拍怕网:https://www.ikjzd.com/w/2205
实用干货:外贸人必懂这些航贸英语短句!:https://www.ikjzd.com/home/20640
听说,今年卖家都盯上了这几个类目:https://www.ikjzd.com/home/332
海关总署:关于全面推广《海关专用缴款书》打印改革的公告!:https://www.ikjzd.com/home/11233

No comments:

Post a Comment