继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

SSM学习:初学者轻松入门指南

摇曳的蔷薇
关注TA
已关注
手记 328
粉丝 54
获赞 169
概述

本文介绍了SSM框架(Spring、Spring MVC和MyBatis)的基本构成、优势以及应用场景,并详细讲解了开发环境的搭建、基础项目创建以及各框架的核心配置和使用技巧。通过本文,读者将深入了解和掌握SSM框架的使用方法,并能够通过实际项目实例进一步巩固相关技能。

SSM框架简介

SSM框架是Spring、Spring MVC和MyBatis三个框架的结合。Spring提供轻量级的Java应用框架,简化企业级应用开发;Spring MVC提供基于Java的Web框架,增强Web应用的灵活性和可测试性;MyBatis则是一个持久层框架,简化数据库操作。

SSM框架的定义与组成

  • Spring框架:提供IoC(控制反转)和AOP(面向切面编程)功能,实现依赖注入和企业级服务。
  • Spring MVC框架:基于Spring的Web MVC框架,提供Web应用的MVC架构,增强Web应用开发的灵活性和可测试性。
  • MyBatis框架:持久层框架,简化与数据库的交互,支持自定义SQL查询和存储过程的调用。

SSM框架的优势与应用场景

  • 开发效率:Spring和MyBatis提供了丰富的功能和灵活的配置,简化了开发工作。
  • 代码清晰:通过依赖注入,代码耦合度低,易于维护和扩展。
  • 企业级应用:适用于企业级Web应用开发,能够满足复杂业务逻辑和数据操作的需求。
  • 丰富的插件:Spring和MyBatis都有大量的插件和扩展,支持各种企业级需求。

开发环境搭建

开发工具选择

  • IDEA:推荐使用IntelliJ IDEA作为开发工具,提供强大的代码编辑和调试功能。
  • Eclipse:也可以选择Eclipse,但IDEA在Java开发方面更为出色。

框架依赖库的安装与配置

为了使用SSM框架,需要在项目中引入相应的依赖库。以下是使用Maven来管理依赖的步骤:

  1. 创建Maven项目:在IDEA中创建一个新的Maven项目。
  2. 配置pom.xml文件:在pom.xml文件中添加Spring、Spring MVC和MyBatis相关的依赖。
<dependencies>
    <!-- Spring Core -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.10</version>
    </dependency>

    <!-- Spring MVC -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.10</version>
    </dependency>

    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.23</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.10</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>5.3.10</version>
    </dependency>
</dependencies>

基础项目搭建

Maven项目创建

  1. 创建Maven项目:在IDEA中选择"File" -> "New" -> "Project",然后选择"Maven"创建项目。
  2. 设置项目基本信息:填写项目名称、组ID(通常为公司域名的倒序,如com.example)、项目名(如ssm-demo)。
  3. 生成pom.xml:IDEA会自动生成pom.xml文件,用于管理项目的依赖和构建配置。

Spring框架详解

Spring核心配置

Spring框架的核心是通过配置文件或注解来管理对象及其依赖关系。

  1. 配置文件:创建一个Spring的核心配置文件,如applicationContext.xml
  2. 对象定义:在配置文件中定义Bean(对象),配置其属性和依赖关系。
<bean id="exampleBean" class="com.example.ExampleBean">
    <property name="propertyOne" value="valueOne"/>
</bean>
  1. 注解配置:使用注解(如@Component@Service@Controller)来定义Bean,简化配置。
package com.example;

import org.springframework.stereotype.Component;

@Component
public class ExampleBean {
    private String propertyOne = "valueOne";
    // getters and setters
}

Spring与数据库交互

Spring框架提供了JdbcTemplate来简化数据库操作。

  1. 配置数据源:在Spring配置文件中配置数据源。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
    <property name="username" value="root"/>
    <property name="password" value="password"/>
</bean>
  1. 使用JdbcTemplate:创建JdbcTemplate对象并使用其方法执行SQL语句。
package com.example;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class JdbcTemplateExample {

    private JdbcTemplate jdbcTemplate;

    public JdbcTemplateExample() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
        dataSource.setUsername("root");
        dataSource.setPassword("password");
        jdbcTemplate = new JdbcTemplate(dataSource);
    }

    public void queryData() {
        String sql = "SELECT * FROM users";
        jdbcTemplate.query(sql, (rs, row) -> {
            System.out.println(rs.getString("username"));
            System.out.println(rs.getString("email"));
        });
    }
}

MyBatis框架详解

MyBatis的基本使用

MyBatis通过配置文件或注解来定义SQL映射。

  1. 配置文件:创建mybatis-config.xml文件,配置数据库连接和SQL映射文件。
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
</configuration>
  1. SQL映射文件:创建SQL映射文件,定义SQL语句和结果映射。
<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectUserById" resultType="com.example.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>
  1. 使用MyBatis:通过SqlSessionFactorySqlSession执行SQL语句。
package com.example;

import com.example.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class MyBatisExample {

    public static void main(String[] args) throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        try (SqlSession session = sqlSessionFactory.openSession(true)) {
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = mapper.selectUserById(1);
            System.out.println(user.getUsername());
        }
    }
}

MyBatis的高级特性

MyBatis支持动态SQL、缓存、分页等高级特性。

  1. 动态SQL:使用<if><choose>等标签动态生成SQL。
<select id="selectUserByCondition" resultType="com.example.User">
    SELECT * FROM users
    <where>
        <if test="username != null">
            AND username = #{username}
        </if>
        <if test="email != null">
            AND email = #{email}
        </if>
    </where>
</select>
  1. 缓存:配置一级和二级缓存,提高查询效率。
<cache/>
  1. 分页:使用RowBounds或第三方插件实现分页。
package com.example;

import com.example.mapper.UserMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.orm.RowBounds;

import java.io.IOException;
import java.io.InputStream;

public class MyBatisPaginationExample {

    public static void main(String[] args) throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        try (SqlSession session = sqlSessionFactory.openSession(true)) {
            UserMapper mapper = session.getMapper(UserMapper.class);
            RowBounds rowBounds = new RowBounds(0, 10); // 第0条开始,取10条
            User[] users = mapper.selectUserByPage(rowBounds);
            for (User user : users) {
                System.out.println(user.getUsername());
            }
        }
    }
}

Spring MVC框架详解

Spring MVC的基本配置

Spring MVC基于控制器、视图和模型的三层架构。

  1. 配置Web应用:使用DispatcherServlet作为前端控制器。
<bean id="myDispatcherServlet" class="org.springframework.web.servlet.DispatcherServlet">
    <property name="contextConfigLocation" value="/WEB-INF/spring/appServlet/servlet-context.xml"/>
</bean>
  1. 配置视图解析器:设置JSP、Freemarker等视图解析器。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

控制器、视图与模型的使用

控制器处理HTTP请求,模型存储数据,视图负责展示数据。

  1. 创建控制器:定义控制器类,处理特定的HTTP请求。
package com.example.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/")
    public String home(Model model) {
        model.addAttribute("message", "Hello, World!");
        return "home";
    }
}
  1. 创建视图:在/WEB-INF/views/目录下创建视图文件,如home.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>
  1. 传递模型数据:在控制器中将数据传递给视图,视图通过EL表达式访问这些数据。
package com.example.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class UserController {

    @GetMapping("/user")
    public String getUser(Model model) {
        model.addAttribute("username", "John Doe");
        return "user";
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>User</title>
</head>
<body>
    <h1>Welcome, ${username}!</h1>
</body>
</html>

总结

通过本文的介绍,读者已经了解了SSM框架的基本构成和优势,掌握了开发环境的搭建方法,以及各框架的核心配置和使用技巧。希望读者能够通过实际项目应用这些知识,进一步巩固和提高自己的技能。推荐读者到M慕课网学习更多相关的课程和技术。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP