SSM整合详细教学(上)(一)

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: SSM整合详细教学(上)(一)

一、SSM整合


1. SSM整合配置


1.1 SSM整合流程


创建工程

SSM整合

Spring

SpringConfig

MyBatis

MybatisConfig

JdbcConfig

jdbc.properties

SpringMVC

ServletConfig

SpringMvcConfig

功能模块

表与实体类

dao(接口+自动代理)

service(接口+实现类)

业务层接口测试(整合JUnit)

controller

表现层接口测试(PostMan)


1.2 SSM整合配置


1.2.1 创建工程,添加依赖和插件


a7add2a7bd355ad61e6c0ac5177fd282_e8f267159f87a3ee75fdf10372192422.png


<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.16</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.0</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <port>80</port>
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>
</build>



1.2.2 Spring整合Mybatis


创建数据库和表


-- 创建ssm_db数据库
CREATE DATABASE IF NOT EXISTS ssm_db CHARACTER SET utf8;
-- 使用ssm_db数据库
USE ssm_db;
-- 创建tbl_book表
CREATE TABLE tbl_book(
    id INT PRIMARY KEY AUTO_INCREMENT, -- 图书编号
    TYPE VARCHAR(100), -- 图书类型
    NAME VARCHAR(100), -- 图书名称
    description VARCHAR(100) -- 图书描述
);
-- 添加初始化数据
INSERT INTO tbl_book VALUES(NULL,'计算机理论','Spring实战 第5版','Spring入门经典教材,深入理解Spring原理技术内幕');
INSERT INTO tbl_book VALUES(NULL,'计算机理论','Spring 5核心原理与30个类手写实战','十年沉淀之作,手写Spring精华思想');
INSERT INTO tbl_book VALUES(NULL,'计算机理论','Spring 5设计模式','深入Spring源码剖析,Spring源码蕴含的10大设计模式');
INSERT INTO tbl_book VALUES(NULL,'市场营销','直播就该这么做:主播高效沟通实战指南','李子柒、李佳琦、薇娅成长为网红的秘密都在书中');
INSERT INTO tbl_book VALUES(NULL,'市场营销','直播销讲实战一本通','和秋叶一起学系列网络营销书籍');
INSERT INTO tbl_book VALUES(NULL,'市场营销','直播带货:淘宝、天猫直播从新手到高手','一本教你如何玩转直播的书,10堂课轻松实现带货月入3W+');



jdbc.properties属性文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_db
jdbc.username=root
jdbc.password=root


JdbcConfig配置类


public class JdbcConfig {
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
  //配置连接池
    @Bean
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driver);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return   dataSource;
    }
  //Spring事务管理需要的平台事务管理器对象
    @Bean
    public PlatformTransactionManager transactionManager(DataSource dataSource){
        DataSourceTransactionManager ds = new DataSourceTransactionManager();
        ds.setDataSource(dataSource);
        return ds;
    }
}



MybatisConfig配置类


public class MybatisConfig {
    @Bean
    public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setDataSource(dataSource);
        // typeAliasesPackage属性的作用是,搜索指定包别名
        // 配置了以后xml文件中的resultType和parameterType就不需要指定全类名
        factoryBean.setTypeAliasesPackage("com.sun.domain");
        return factoryBean;
    }
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        // setBasePackage用于设置Mapper接口所在的基本包名,是实现自动扫描的关键方法
        msc.setBasePackage("com.sun.dao");
        return msc;
    }
}




SpringConfig配置类


@Configuration
@ComponentScan({"com.sun.service"})
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MyBatisConfig.class})
@EnableTransactionManagement //开启Spring事务管理
public class SpringConfig {
}


1.2.3 Spring整合SpringMVC


SpringMvcConfig配置类
@Configuration
@ComponentScan("com.sun.controller")
@EnableWebMvc
public class SpringMvcConfig {
}


ServletConfig配置类,加载SpringMvcConfig和SpringConfig配置类


public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
前端开发 JavaScript Java
毕业设计论文|基于SSM的网络教学系统设计与实现
毕业设计论文|基于SSM的网络教学系统设计与实现
|
9月前
|
Java 关系型数据库 MySQL
基于SSM的教学管理系统(有报告)。Javaee项目。
基于SSM的教学管理系统(有报告)。Javaee项目。
|
9月前
|
Java 关系型数据库 MySQL
基于SSM的教学课程评价管理系统(有报告)。Javaee项目。
基于SSM的教学课程评价管理系统(有报告)。Javaee项目。
|
2月前
|
小程序 前端开发 测试技术
微信小程序|ssm基于微信小程序的高校课堂教学管理系统
微信小程序|ssm基于微信小程序的高校课堂教学管理系统
|
2月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的大学多媒体教学管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的大学多媒体教学管理系统附带文章和源代码部署视频讲解等
32 7
|
2月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
33 4
|
2月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的景海中学教学管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的景海中学教学管理系统附带文章和源代码部署视频讲解等
25 5
|
3月前
|
JavaScript Java 测试技术
基于ssm+vue.js的计算机公共基础课程mooc教学平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js的计算机公共基础课程mooc教学平台附带文章和源代码设计说明文档ppt
18 1
|
3月前
|
JavaScript Java 测试技术
基于ssm+vue.js的网络教学平台附带文章和源代码设计说明文档ppt
基于ssm+vue.js的网络教学平台附带文章和源代码设计说明文档ppt
31 1
|
2月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的高校教学业绩信息管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的高校教学业绩信息管理系统附带文章和源代码部署视频讲解等
15 0