IDEA + Maven环境下的SSM框架整合及搭建过程

yizhihongxing

以下是“IDEA + Maven环境下的SSM框架整合及搭建过程”的完整攻略:

一、环境准备

首先确认开发环境已经具备以下工具和组件:

  • JDK
  • Tomcat
  • MySQL
  • Maven
  • IDEA

二、创建Maven项目

  1. 在IDEA中创建Maven项目,选择Spring Initializr模板,在GroupId中输入自定义的项目组织名称(如com.example),ArtifactId中输入项目名称(如myssm),选择Maven版本、语言和Spring Boot版本等相关信息。
  2. 按照提示选择所需的依赖,包括Spring、MyBatis、MySQL、SpringMVC等,也可以在之后的pom.xml文件中手动添加所需的依赖。

三、SSM框架整合

  1. pom.xml文件中添加SSM框架所需的依赖:
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>{mybatis-spring-boot-starter-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>{spring-version}</version>
</dependency>

其中mybatis-spring-boot-starter为MyBatis的集成器,spring-jdbc为Spring框架的组件。

  1. 添加数据库配置文件application.properties,配置如下:
spring.datasource.url=jdbc:mysql://localhost:3306/{database-name}?useSSL=false&serverTimezone=UTC
spring.datasource.username={database-username}
spring.datasource.password={database-password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.type-aliases-package=com.example.entity
mybatis.mapper-locations=classpath:mapper/*.xml

其中{database-name}{database-username}{database-password}需要替换为实际的连接数据库的相关参数。

  1. 创建实体类和Mapper接口

src/main/java目录下创建实体类和Mapper接口,如下:

// 实体类
package com.example.entity;

public class User {
    private int id;
    private String name;
    private String password;

    // 省略getter和setter
}

// Mapper接口
package com.example.mapper;

import com.example.entity.User;

public interface UserMapper {
    User findUserById(int id);
}
  1. 创建Mapper.xml文件

src/main/resources/mapper目录下创建UserMapper.xml文件,并配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <select id="findUserById" resultType="com.example.entity.User">
        select * from users where id=#{id}
    </select>
</mapper>

其中,#{id}为Mapper接口中findUserById方法中的参数。

  1. 添加SpringMVC配置文件

src/main/resources目录下创建SpringMVC配置文件spring-mvc.xml,并添加如下配置:

<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 添加SpringMVC注解扫描 -->
    <context:component-scan base-package="com.example.controller" />

    <!-- 配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

其中com.example.controller为Controller类所在的包名。

  1. 编写Controller类

src/main/java目录下创建Controller类,如下:

package com.example.controller;

import com.example.entity.User;
import com.example.mapper.UserMapper;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;

@Controller
@RequestMapping("/")
public class UserController {
    @Resource
    private UserMapper userMapper;

    @RequestMapping("user/{id}")
    public String getUserById(@PathVariable int id, ModelMap model) {
        User user = userMapper.findUserById(id);
        model.put("user", user);
        return "user";
    }
}

其中@Resource为DI注入,用于注入UserMapper实例。

  1. 编写JSP文件

src/main/webapp/WEB-INF/views目录下,创建user.jsp文件,展示查询出来的用户信息。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>User Information</title>
    <style>
        table {
            border-collapse: collapse;
            width: 50%;
        }

        th, td {
            padding: 8px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
    </style>
</head>
<body>
<h1>User Information</h1>
<table>
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Password</th>
    </tr>
    <c:if test="${not empty user}">
        <tr>
            <td>${user.id}</td>
            <td>${user.name}</td>
            <td>${user.password}</td>
        </tr>
    </c:if>
</table>
</body>
</html>

其中<c:if>
标签用于判断查询结果是否为空,如果不为空,则将查询结果渲染到网页中。

四、示例

以下是两个查询用户信息的示例:

  1. 直接访问Controller方法:http://localhost:8080/user/1

  2. 使用AJAX异步请求查询用户信息:

// jQuery异步请求
$.get("/user/1", function (data) {
  $("#result").html(data);
});

// HTML代码
<div id="result"></div>

五、总结

通过以上步骤,我们可以快速搭建一个基于IDEA + Maven环境下的SSM框架整合的项目,完成了数据持久化和MVC控制层的搭建。这个示例可以作为后续开发的一个基础骨架,在此基础上,可以进一步加强项目的功能和安全性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IDEA + Maven环境下的SSM框架整合及搭建过程 - Python技术站

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

相关文章

  • 美团面经总结(2023最新)

    分享一份读者面试美团的面经,比较有参考性,感兴趣的可以看看~ 一面 消息队列如何保证可靠性 消息队列如何保证消息幂等性 消息队列的优缺点 为什么用b+树 聚集索引和主键区别,其他引擎怎么做的 平时数据库编码 explain参数 http报文参数有哪些吗? 做题,链表奇偶有序输出 二面 自我介绍 有哪些排序算法? 介绍下快排/堆排/归并排序。 数据库中的索引应…

    Java 2023年5月7日
    00
  • Java Character类对单个字符操作原理解析

    Java Character类对单个字符操作原理解析 在Java中,Character类是一个非常重要的类,主要用于对单个字符的操作。它包含了一些静态方法和实例方法,可以用于判断字符的数字、大小写、空格、是否是字母等,下面我们来详细讲解这个类的一些方法和原理。 Character类的构造方法 Character(char c) 创建一个新的 Characte…

    Java 2023年5月27日
    00
  • Spring MVC参数校验详解(关于`@RequestBody`返回`400`)

    关于Spring MVC参数校验,可以分为两种情况讨论:针对普通请求参数的校验和针对请求体中的JSON格式数据的校验。这里我们主要讲解后者,即针对@RequestBody注解返回400错误时的问题。 1. 报错原因 在开发中,当我们使用@RequestBody注解接收请求体中的JSON格式数据时,经常会遇到传入的参数格式不正确的情况,比如类型不匹配、缺失必要…

    Java 2023年5月20日
    00
  • java基础的详细了解第三天

    Java基础的详细了解第三天 欢迎来到Java基础的详细了解第三天。今天我们将深入了解Java的循环结构、数组、面向对象编程等知识点。 1. 循环结构 Java提供了三种循环结构:while循环、do-while循环和for循环。其中while循环和do-while循环是条件循环,而for循环则是计数循环。以下是它们的基本语法: // while循环 whi…

    Java 2023年5月20日
    00
  • 浅谈SpringCloud的微服务架构组件

    关于“浅谈SpringCloud的微服务架构组件”的完整攻略,我可以从以下几个方面进行讲解: 一、什么是微服务架构 微服务架构是一种以服务化思想为核心的分布式系统架构,用于将单个应用程序拆分为一组较小且更独立的服务,每个服务都可以独立部署、升级和扩展,提高了系统的可维护性、可扩展性和弹性。微服务架构的主要优势包括: 每个服务都可以独立部署和伸缩 不同的服务可…

    Java 2023年5月20日
    00
  • 仅5步搞定Android开发环境部署 Android开发环境搭建教程

    仅5步搞定Android开发环境部署 Android开发环境的搭建是Android开发的必备步骤。随着Android的快速发展,环境的安装和配置变得越来越简单。本教程将在5步之内教您如何快速搭建Android开发环境。 步骤1:安装Java JDK 首先,我们需要安装Java JDK,您可以从以下链接中下载安装程序:https://www.oracle.co…

    Java 2023年5月26日
    00
  • MyBatisPlus超详细分析条件查询

    以下是针对“MyBatisPlus超详细分析条件查询”的完整攻略: 一、MyBatisPlus概述 MyBatisPlus是对MyBatis进行了功能扩展和优化的一款工具。其提供了更加便捷的CRUD操作、Lambda表达式查询等功能,大大提升了开发效率。 二、条件查询 MyBatisPlus提供了多种条件查询的方式,包括wrapper、Lambda以及Que…

    Java 2023年5月20日
    00
  • Java实现ZooKeeper的zNode监控

    当我们使用ZooKeeper作为分布式协调框架时,监视zNode的变化是很常见的任务,因为zNode的变化往往意味着某些与服务相关的状态变化。本文将详细讲解如何使用Java实现ZooKeeper的zNode监视。 步骤一:导入ZooKeeper依赖 首先,在项目的pom.xml文件中添加以下ZooKeeper依赖: <dependency> &l…

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