使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)

使用IDEA搭建SSM框架的详细教程

简介

SSM框架是目前Java Web开发中最常用的框架之一,它由Spring、SpringMVC和MyBatis三个框架组成,可以很好地解决Java Web开发中的各种问题。本文将详细介绍如何使用IDEA搭建SSM框架,并提供两个示例说明。

环境准备

在开始之前,需要确保以下环境已经准备好:

  • JDK 1.8以上版本
  • Maven 3.0或以上版本
  • Tomcat 8.0或以上版本
  • IntelliJ IDEA 2018或以上版本

创建Maven项目

  1. 打开IntelliJ IDEA,选择“Create New Project”。
  2. 在弹出的窗口中选择“Maven”项目类型,并勾选“Create from archetype”选项。
  3. 在下拉列表中选择“maven-archetype-webapp”。
  4. 输入项目的GroupId、ArtifactId和Version等信息,然后点击“Next”。
  5. 在下一步中,选择项目的存储路径和项目名称,然后点击“Finish”按钮。

导入依赖

在pom.xml文件中添加以下依赖:

<dependencies>
  <!-- Spring -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.0.RELEASE</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.2.0.RELEASE</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.0.RELEASE</version>
  </dependency>
  <!-- MyBatis -->
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.4</version>
  </dependency>
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.4</version>
  </dependency>
  <!-- 数据库驱动 -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.22</version>
  </dependency>
  <!-- Servlet API -->
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

配置Spring

在src/main/resources目录下创建一个名为“applicationContext.xml”的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/test?useSSL=false&amp;serverTimezone=UTC"/>
  <property name="username" value="root"/>
  <property name="password" value="123456"/>
</bean>

<!-- 配置MyBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.example.mapper"/>
</bean>

在上面的配置中,我们配置了数据源和MyBatis的SqlSessionFactory。同时,我们还配置了MapperScannerConfigurer来扫描Mapper接口。

配置Spring MVC

在src/main/webapp/WEB-INF目录下创建一个名为“springmvc-servlet.xml”的Spring MVC配置文件,并添加以下内容:

<!-- 配置Spring MVC -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/views/"/>
  <property name="suffix" value=".jsp"/>
</bean>

<!-- 配置扫描Controller -->
<context:component-scan base-package="com.example.controller"/>

在上面的配置中,我们配置了视图解析器和扫描Controller。

配置web.xml

在src/main/webapp/WEB-INF目录下创建一个名为“web.xml”的web配置文件,并添加以下内容:

<!-- 配置DispatcherServlet -->
<servlet>
  <servlet-name>springmvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc-servlet.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

在上面的配置中,我们配置了DispatcherServlet,并将其映射到根路径。

创建Controller

在src/main/java目录下创建一个名为“com.example.controller”的包,并在其中创建一个名为“UserController”的类。在该类中添加以下内容:

@Controller
@RequestMapping("/user")
public class UserController {
  @Autowired
  private UserService userService;

  @GetMapping("/list")
  public String getUserList(Model model) {
    List<User> userList = userService.getUserList();
    model.addAttribute("userList", userList);
    return "userList";
  }
}

在上面的代码中,我们创建了一个名为“UserController”的Controller,并使用@GetMapping注解来处理GET请求。在方法中,使用@Autowired注解来注入UserService。我们调用UserService的getUserList方法来获取用户列表,并将查询到的User列表添加到Model中,并返回“userList”视图。

创建Mapper

在src/main/java目录下创建一个名为“com.example.mapper”的包,并在其中创建一个名为“UserMapper”的接口。在该接口中添加以下内容:

public interface UserMapper {
  List<User> getUserList();
}

在上面的代码中,我们创建了一个名为“UserMapper”的Mapper接口,并定义了一个名为“getUserList”的方法。

创建Service

在src/main/java目录下创建一个名为“com.example.service”的包,并在其中创建一个名为“UserService”的接口。在该接口中添加以下内容:

public interface UserService {
  List<User> getUserList();
}

在上面的代码中,我们创建了一个名为“UserService”的Service接口,并定义了一个名为“getUserList”的方法。

在src/main/java目录下创建一个名为“com.example.service.impl”的包,并在其中创建一个名为“UserServiceImpl”的类。在该类中添加以下内容:

@Service
public class UserServiceImpl implements UserService {
  @Autowired
  private UserMapper userMapper;

  @Override
  public List<User> getUserList() {
    return userMapper.getUserList();
  }
}

在上面的代码中,我们创建了一个名为“UserServiceImpl”的Service实现类,并使用@Autowired注解来注入UserMapper。在getUserList方法中我们调用UserMapper的getUserList方法来查询用户列表。

创建JSP视图

在src/main/webapp/WEB-INF/views目录下创建一个名为“userList.jsp”的JSP视图,并添加以下内容:

<!DOCTYPE html>
<html>
<head>
  <title>User List</title>
</head>
<body>
  <h1>User List</h1>
  <table>
    <thead>
      <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Age</th>
      </tr>
    </thead>
    <tbody>
      <c:forEach items="${userList}" var="user">
        <tr>
          <td>${user.id}</td>
          <td>${user.name}</td>
          <td>${user.age}</td>
        </tr>
      </c:forEach>
    </tbody>
  </table>
</body>
</html>

在上面的代码中,我们创建了一个名为“userList.jsp”的JSP视图,并使用标签来循环显示用户列表。

示例说明

示例1:添加用户

在UserController中添加以下方法:

@GetMapping("/add")
public String addUser() {
  return "addUser";
}

@PostMapping("/add")
public String addUser(User user) {
  userService.addUser(user);
  return "redirect:/user/list";
}

在UserMapper中添加以下方法:

void addUser(User user);

在UserServiceImpl中添加以下方法:

@Override
public void addUser(User user) {
  userMapper.addUser(user);
}

在src/main/webapp/WEB-INF/views目录下创建一个名为“addUser.jsp”的JSP视图,并添加以下内容:

<!DOCTYPE html>
<html>
<head>
  <title>Add User</title>
</head>
<body>
  <h1>Add User</h1>
  <form action="${pageContext.request.contextPath}/user/add" method="post">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name"><br><br>
    <label for="age">Age:</label>
    <input type="text" id="age" name="age"><br><br>
    <input type="submit" value="Submit">
  </form>
</body>
</html>

在上面的代码中,我们创建了一个名为“addUser.jsp”的JSP视图,并使用

标签来提交用户信息。

示例2:删除用户

在UserController中添加以下方法:

@GetMapping("/delete/{id}")
public String deleteUser(@PathVariable int id) {
  userService.deleteUser(id);
  return "redirect:/user/list";
}

在UserMapper中添加以下方法:

void deleteUser(int id);

在UserServiceImpl中添加以下方法:

@Override
public void deleteUser(int id) {
  userMapper.deleteUser(id);
}

在userList.jsp中添加以下内容:

<td><a href="${pageContext.request.contextPath}/user/delete/${user.id}">Delete</a></td>

在上面的代码中,我们在userList.jsp中添加了一个超链接,用于删除用户。

运行项目

在完成以上步骤后,我们可以启动Tomcat服务器,并访问http://localhost:8080/user/list来查看用户列表。同时,我们可以访问http://localhost:8080/user/add来添加用户,访问http://localhost:8080/user/delete/{id}来删除用户。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis) - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • Java中输入输出方式的简单示例

    Java 是一门广泛应用于开发各种类型应用程序的语言,输入输出是 Java 的重要部分。在 Java 中,有多种输入输出方式,常用的有标准输入、文件输入输出、网络输入输出、控制台输入输出等等。下面就对这些输入输出方式进行一个简单的示例介绍。 标准输入输出示例 在 Java 中,标准输入输出是最简单的一种输入输出方式。标准输出可以用 System.out.pr…

    Java 2023年5月19日
    00
  • Java中实现线程间通信的实例教程

    下面我将为您详细讲解“Java中实现线程间通信的实例教程”的完整攻略。 什么是线程间通信 线程是 Java 中最基本的并发编程单元,线程之间的通信是指多个线程在访问共享资源过程中,通过某种协作机制对资源实现共享和互斥访问的过程。线程间通信是 Java 并发编程中的核心概念之一。 线程间通信实现方式 Java 中实现线程间通信一般有三种方式: 共享内存 消息传…

    Java 2023年5月18日
    00
  • java实现把两个有序数组合并到一个数组的实例

    下面是Java实现把两个有序数组合并到一个数组的完整攻略。 1. 题目说明 有两个已排序的整数数组nums1和nums2,将nums2合并到nums1中,使得nums1成为一个有序数组。 注意: nums1和nums2的初始元素数量分别为m和n。 nums1的长度足以容纳m+n个元素。 2. 思路分析 根据题目要求,我们需要将nums2中的所有元素按顺序插入…

    Java 2023年5月26日
    00
  • Java系统变量参数获取设置System.getProperties()的方法

    使用Java的System类提供了访问系统级别变量的方法,其中包括了Java系统变量。可以使用System.getProperties()方法来获取当前Java虚拟机的系统属性和变量,并可以进行进一步操作。 具体步骤如下: 1. 使用System.getProperties()方法获取Java系统变量 可以使用以下代码获取Java虚拟机的所有系统变量: Pr…

    Java 2023年6月15日
    00
  • jsp分页显示完整实例

    下面就来详细讲解一下“jsp分页显示完整实例”的攻略。 什么是分页显示? 分页显示是指将大量数据分开展示,并通过页面的控件使用户可以翻页操作,进行查看。 为什么需要分页显示? 如果展示的数据量过大,会导致页面加载速度变慢,甚至使页面崩溃。另外,用户在查看数据时,如果没有分页功能,会使得他们无法方便地找到所需数据。 实现分页显示的方法 实现分页显示有多种方法,…

    Java 2023年6月15日
    00
  • 图文详解Java环境变量配置方法

    图文详解Java环境变量配置方法攻略 如果你想在电脑上安装并使用Java开发环境,那么正确配置Java环境变量是必不可少的一步。下面我们将为你详细讲解如何在Windows系统中正确配置Java环境变量。 1. 下载并安装Java Development Kit(JDK) 首先,你需要下在并安装Java Development Kit(JDK)。你可以前往Or…

    Java 2023年5月24日
    00
  • 如何把JAR发布到maven中央仓库的几种方法

    下面是如何将JAR包发布到Maven中央仓库的几种方法的完整攻略: 方法一:使用Maven发布插件 首先,在你的项目中加入Maven发布插件: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <art…

    Java 2023年5月20日
    00
  • java实现学生成绩录入系统

    Java实现学生成绩录入系统 系统功能 本系统是一个学生成绩录入系统,主要功能如下: 录入学生成绩 显示学生成绩 查询学生成绩 修改学生成绩 删除学生成绩 退出系统 系统设计 系统设计有两个部分:学生类和学生成绩类。学生类包含学生的姓名和学号等基本信息,学生成绩类包含学生的各科成绩和总分等信息。 学生类 public class Student { priv…

    Java 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部