使用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日

相关文章

  • Struts2配置文件中使用通配符的方法(三种形式)

    使用通配符在Struts2配置文件中可以方便地定义多个相似的Action或者Interceptor,以及进行全局的配置。 在Struts2的配置文件中,有三种形式可以使用通配符,分别如下: 使用“”号通配符 例如:<package name=”default” extends=”struts-default”> <action name=”…

    Java 2023年5月20日
    00
  • Java实现人脸识别登录、注册等功能(最新完整版)

    首先我们来介绍一下这篇文章。《Java实现人脸识别登录、注册等功能(最新完整版)》是一篇介绍如何使用Java语言实现人脸识别登录、注册等功能的文章。文章详细介绍了如何搭建环境、实现人脸注册、识别、显示等功能。下面将对文章中的内容进行详细讲解。 一、环境搭建 在文章中,作者先介绍了如何搭建Java开发环境,包括JDK、Eclipse、OpenCV等工具的安装和…

    Java 2023年5月19日
    00
  • java使用CountDownLatch等待多线程全部执行完成

    Sure!下面是我为您详细讲解如何在Java中使用CountDownLatch等待多线程全部执行完成的完整攻略。 什么是CountDownLatch CountDownLatch是Java中的一个同步工具类,它允许一个或多个线程等待直到在其他线程完成的一组操作执行完毕。它主要是用于多线程协同,一个线程需要等待多个其它线程完成某个操作之后才能继续执行。 Cou…

    Java 2023年5月19日
    00
  • 微信小程序实现无缝滚动

    准备工作 微信小程序的开发环境 基本的HTML、CSS、JavaScript知识 微信小程序开发文档 实现步骤步骤一:建立一个scroll组件 在wxml文件中使用scroll组件 <scroll-view scroll-x="{{scrollX}}" scroll-y="{{scrollY}}" style=&…

    Java 2023年5月23日
    00
  • extjs 分页使用jsp传递数据示例

    下面是关于”extjs 分页使用jsp传递数据示例”的完整攻略。 什么是extjs? ExtJS是目前最为流行的JavaScript应用程序图形界面库之一,它很好地支持了Web应用中的MVC模式,使Web应用变得强壮且易于维护。 extjs分页使用jsp传递数据的示例 在使用Extjs进行分页时,通常都会在后台使用jsp开发,所以这里就以jsp作为后台语言来…

    Java 2023年6月15日
    00
  • Spring Security认证器实现过程详解

    Spring Security认证器实现过程详解 Spring Security是用于保护Web应用程序的开放源代码框架。它可以提供基于角色的安全性,对用户进行身份验证和访问控制来保护应用程序。本文将详细介绍Spring Security认证器实现的过程。 一. Spring Security认证器 Spring Security提供了一个框架来处理所有We…

    Java 2023年6月3日
    00
  • Tomcat中的catalina.bat原理详细解析

    Tomcat中的catalina.bat原理详细解析 什么是catalina.bat? catalina.bat是Tomcat的启动脚本之一。在Windows下,Tomcat是通过执行catalina.bat实现启动和关闭的。该脚本文件位于Tomcat的bin目录下。 catalina.bat的作用 catalina.bat实现了Tomcat的启动、关闭、重…

    Java 2023年5月20日
    00
  • java多线程JUC常用辅助类详解

    让我们来详细讲解“java多线程JUC常用辅助类详解”的攻略。 一、JUC简介 JUC(Java Util Concurrent)是Java SE 5中推出的一个并发编程框架,提供了许多特殊的并发编程工具类,以及对Java线程池的支持等。 二、JUC常用函数 以下是JUC中常用的辅助类: 1. CountDownLatch(倒计数器) CountDownLa…

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