# java-ssm-demo **Repository Path**: ifu25/java-ssm-demo ## Basic Information - **Project Name**: java-ssm-demo - **Description**: SSM 框架集成演示 Demo。Spring、Spring MVC、MyBatis 最简单示例。 参考视频:https://www.bilibili.com/video/BV1hE411F77L - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-10 - **Last Updated**: 2021-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## SSM 框架入门演示示例 ### 参考视频 https://www.bilibili.com/video/BV1hE411F77L ### 代码说明 此代码为参照上面视频练习而编写,项目结构及部分代码与视频有差异。 ### 集成框架 ``` spring-mvc:5.2.10 mybatis:3.5.6 ``` > 注:实体类需要安装 `lombok` 插件 ### 建表语句及初始化数据 ```sql create table tingting.user ( id int auto_increment primary key, userName varchar(255) null, sex varchar(255) null, birthday date null, address varchar(255) null ); INSERT INTO tingting.user (id, userName, sex, birthday, address) VALUES (1, '莫婷', '女', '1998-01-01', '淄博'); INSERT INTO tingting.user (id, userName, sex, birthday, address) VALUES (10, '张三', '男', null, '火星'); INSERT INTO tingting.user (id, userName, sex, birthday, address) VALUES (11, '李四', '女', '1965-12-06', '菏泽单县'); INSERT INTO tingting.user (id, userName, sex, birthday, address) VALUES (13, '王五', '男', '2021-03-08', '天津河东'); INSERT INTO tingting.user (id, userName, sex, birthday, address) VALUES (14, '赵六', '女', '2021-03-18', '火星'); ``` ## 视频原始文档: ### SSM 框架整合 Spring + Spring MVC + MyBatis Spring MVC 负责实现 MVC 设计模式,MyBatis 负责数据持久层,Spring 负责管理 Spring MVC 和 MyBatis 相关对象的创建和依赖注入。 - 创建 Maven 工程,pom.xml ```xml org.springframework spring-webmvc 5.0.11.RELEASE org.springframework spring-jdbc 5.0.11.RELEASE org.springframework spring-aop 5.0.11.RELEASE org.springframework spring-aspects 5.0.11.RELEASE org.mybatis mybatis 3.4.5 org.mybatis mybatis-spring 1.3.1 mysql mysql-connector-java 8.0.11 c3p0 c3p0 0.9.1.2 jstl jstl 1.2 javax.servlet javax.servlet-api 3.1.0 org.projectlombok lombok 1.18.6 provided ``` - web.xml 中配置 SpringMVC、Spring、字符编码过滤器、加载静态资源。 ```xml Archetype Created Web Application contextConfigLocation classpath:spring.xml org.springframework.web.context.ContextLoaderListener dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml dispatcherServlet / characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 characterEncodingFilter /* default *.js default *.css default *.jpg ``` - 在 spring.xml 中配置 MyBatis 和 Spring 的整合。 ```xml ``` - config.xml 配置一些 MyBatis 辅助信息,比如打印 SQL 等。 ```xml ``` - 配置 springmvc.xml ```xml ``` - 实体类 ```java package com.southwind.entity; import lombok.Data; @Data public class User { private long id; private String name; private String password; private double score; } ``` - UserRepository ```java package com.southwind.repository; import com.southwind.entity.User; import java.util.List; public interface UserRepository { public List findAll(); } ``` - UserRepository.xml ```xml ``` - UserService ```java package com.southwind.service; import com.southwind.entity.User; import java.util.List; public interface UserService { public List findAll(); } ``` - UserServiceImpl ```java package com.southwind.service.impl; import com.southwind.entity.User; import com.southwind.repository.UserRepository; import com.southwind.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceImpl implements UserService { @Autowired private UserRepository userRepository; @Override public List findAll() { return userRepository.findAll(); } } ``` - UserHandler ```java package com.southwind.controller; import com.southwind.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/user") public class UserHandler { @Autowired private UserService userService; @GetMapping("/findAll") public ModelAndView findAll(){ ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("index"); modelAndView.addObject("list",userService.findAll()); return modelAndView; } } ```