1、SSM框架简介

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的web项目的框架。

Spring

Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。

Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。

SpringMVC

SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

mybatis

mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

2、整合SSM框架

(1)创建一个maven-web项目,替换WEB-INF里面的web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"></web-app>

(2)添加相关依赖

<dependencies><!--分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.0</version></dependency><!--spring-webmvc--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.15.RELEASE</version></dependency><!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><!--mybatis和spring整合的依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.6</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><!--druid连接池依赖--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.1</version></dependency><!--lombok依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency><!--jackson java对象转换为json对象 @ResponseBody--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.2.2</version></dependency><!--servlet-api依赖--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency><!--spring-jdbc依赖 解析数据源配置--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.15.RELEASE</version></dependency><!--mybatis-generator代码生成器--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.4.0</version></dependency><!--junit单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!--上传到OSS云服务器--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.13.0</version></dependency><!--log4j 日志--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!--slf4j--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.30</version></dependency><!--文件上传--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version></dependency></dependencies>

(3)编写spring的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--包扫描--><context:component-scan base-package="com.gjx"/><!--开启特殊注解扫描--><mvc:annotation-driven/><!--静态资源放行--><mvc:default-servlet-handler/><!--配置登录拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><mvc:exclude-mapping path="/user/login"/><mvc:exclude-mapping path="/user/register"/><mvc:exclude-mapping path="css/**"/><mvc:exclude-mapping path="js/**"/><mvc:exclude-mapping path="images/**"/><bean class="com.gjx.interceptor.LoginInterceptor"></bean></mvc:interceptor></mvc:interceptors><!--文件上传 id名必须为multipartResolver--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--最大上传大小,单位为byte--><property name="maxUploadSize" value="10485760"/></bean><!--spring配置--><!--数据源配置--><bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource"><!--数据库驱动--><property name="url" value="jdbc:mysql://localhost:3306/vue01?serverTimezone=Asia/Shanghai"/><property name="username" value="root"/><property name="password" value="990412"/><!--初始化连接池的连接个数--><property name="initialSize" value="5"/><!--最小空闲数--><property name="minIdle" value="5"/><!--最大连接数--><property name="maxActive" value="10"/><!--最长等待时间单位毫秒--><property name="maxWait" value="3000"/></bean><!--sqlSessionFactory 整合mybatis--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!--为包起别名--><property name="typeAliasesPackage" value="com.gjx.entity"/><!--数据源配置--><property name="dataSource" ref="druidDataSource"/><!--mapper映射文件的存储位置--><property name="mapperLocations" value="classpath:mapper/*.xml"/><!--plugins插件,array类型,分页插件--><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"></bean></array></property></bean><!--为dao包下的接口生成代理实现类--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.gjx.dao"/></bean>
</beans>

(4)配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--配置DispatcherServlet--><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><!--tomcat启动时创建DispatcherServlet 默认为调用时创建--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

(5)mybatis代码生成器代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!--添加数据库的连接jar包的位置,在项目的左边最下的external libraries中找到复制全路径--><classPathEntry location="E:\repMaven\mysql\mysql-connector-java\8.0.29\mysql-connector-java-8.0.29.jar" /><!--targetRuntime  :MyBatis3 生成  exmpleMyBatis3Simple   不生成exmple--><context id="DB2Tables" targetRuntime="MyBatis3Simple"><!-- 是否去除自动生成的注释 true:是 : false:否 --><commentGenerator><property name="suppressAllComments" value="true" /></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/vue01?serverTimezone=Asia/Shanghai"userId="root"password="990412"><!--解决mysql8.0以后重复生成所有表的问题--><property name="nullCatalogMeansCurrent" value="true" /></jdbcConnection><!-- 默认false,把JDBC DECIMAL(decimal) 和 NUMERIC(numeric) 类型解析为 Integer,为 true时把JDBC DECIMAL 和NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver ><property name="forceBigDecimals" value="false" /></javaTypeResolver><!--实体类的配置, targetProject:生成实体类的位置 --><javaModelGenerator targetPackage="com.gjx.entity" targetProject=".\src\main\java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!--映射文件mapper的配置--><sqlMapGenerator targetPackage="mapper"  targetProject=".\src\main\resources"><property name="enableSubPackages" value="false" /></sqlMapGenerator><!--dao包即业务逻辑层的配置--><javaClientGenerator type="XMLMAPPER" targetPackage="com.gjx.dao"  targetProject=".\src\main\java"><property name="enableSubPackages" value="false" /></javaClientGenerator><!--数据库表的配置--><table schema="" tableName="tbl_user" domainObjectName="User"></table><table schema="" tableName="t_stu" domainObjectName="Stu"></table><table schema="" tableName="t_teacher" domainObjectName="Teacher"></table></context>
</generatorConfiguration>

(6)运行代码生成器

public class Run {@Testpublic void run() throws Exception {List<String> warnings = new ArrayList<String>();boolean overwrite = true;File configFile = new File("mybatis-generator.xml");ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(configFile);DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);myBatisGenerator.generate(null);}
}

3、SSM框架目录结构

SSM框架整合,简单案例相关推荐

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

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

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

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

  3. SSM框架整合完整案例

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

  4. SSM框架整合入门案例

    文章目录 SSM整合案例 1,SSM整合 1.1 流程分析 1.2 整合配置 步骤1:创建Maven的web项目 步骤2:添加依赖 步骤3:创建项目包结构 步骤4:创建SpringConfig配置类 ...

  5. ssm框架的简单案例

    学完ssm框架后做了一个简单的案例,实现简单的增删改查. 项目结构图: 看项目结构: 关键代码: 前端是jsp技术,当然也可以用vue分离的自己选择就好. 订单页面: <%@ page lang ...

  6. SSM框架整合详细案例

    目录描述 一.创建web项目(使用idea maven) 二.使用maven添加依赖 1.在pom.xml中添加项目所需的所有依赖 2.添加tomcat运行驱动 三.建立整体项目架构 四.搭建myba ...

  7. SSM框架整合---详细案例

    目录 一.建四个配置文件在resource根目录 二.applicationContext-mybatis.xml核心配置 三.database.properties配置 四.mybatis-conf ...

  8. SSM框架开发-基础案例

    SSM框架整合基础案例详解 1.数据库环境 创建一个存放书籍数据的数据库表 CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS ...

  9. ssm框架使用resultful_SSM框架整合完整案例

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

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

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

最新文章

  1. Yolo:实时目标检测实战(上)
  2. 知识产权创业的比赛结果
  3. 算法和时间复杂度概念(一级)
  4. codeforces B. Fox and Cross 解题报告
  5. mysql.createpool_Node.js MySQL模块中mysql.createConnection和mysql.createPool有什么区别?
  6. php thumbs.db,window_Win8系统删除thumbs.db文件的方法,  最近有Win8系统用户反映, - phpStudy...
  7. Springboot 2.0.0单元测试
  8. 深入理解Spring Redis的使用 (五)、常见问题汇总
  9. 线程java作用_java线程介绍(原创)
  10. 论文笔记_S2D.49_2017-CVPR_从视频中无监督学习深度和运动估计(SFMLearner)
  11. 信杂比公式_信噪比公式
  12. python中sys.stdout和sys.stderr
  13. 修复win7本地服务器,win7开启本地服务器配置
  14. 单词拆分(动态规划)
  15. uniapp 快速实现简单首页布局
  16. Delphi中的线程类--之(1)
  17. UART、RS232、RS485和RS422
  18. NB-Iot烟感03:感烟探测器原理图设计
  19. 第三十四章 数论——高斯消元解线性方程组
  20. 创建vue项目时存在的问题及解决方法

热门文章

  1. ISO_IEC_27003:2017信息安全管理体系中文解读
  2. Java itext tiff转换pdf
  3. 【DIY】热水器升级加装远程wifi控制功能,esp8266远程红外控制热水器启动
  4. 基于51单片机WiFi温湿度远程控制
  5. 2021年CFA全套资料无偿分享|备考经验|备考计划
  6. 【289】生命游戏(Game Of Life)
  7. 华为以“平台应变”之道角逐数字化转型“深水区”
  8. jtopo 折叠与展开子节点
  9. Linux相关配置VMware安装
  10. 我的海淀驾校考驾照之路