SpringBoot+SSM+MySQL整合项目演示(不涉及前后端交互)

本文详细介绍如何在IntelliJ IDEA环境下,利用Spring Boot、MyBatis、MySQL等技术搭建一个完整的Web应用项目,涵盖项目创建、代码编写、数据库交互及前端页面设计,最后通过测试验证项目功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

IDE:Intellij Idea 2018.03版本
数据库:MySQL

其实可以去Spring官网下载SpringBoot搭建好的工程,网址是:
(https://start.spring.io/)

我在这里使用了IDEA提供的Spring框架搭建的。


创建项目


图1

  1. 打开IDEA,左上角File–>new–>project进入图片界面
  2. 左侧选择Spring Initializr
  3. 右侧如果提示没有JDK的话,点 New 把自己的JDK找到就可以了
  4. 都选好后点 Next

在这里插入图片描述

图2

  1. Group:是包名,我的就是默认的。
  2. Artifact:是项目名,我的改为了ssmspringboot。
  3. Type:我们选默认的Maven Project就好。
  4. Java Version:选自己的JDK版本。
  5. 选好后就点 Next 下一步。

在这里插入图片描述

图3

  1. 在这里我们要勾选我们项目的依赖,会帮我们自动添加到pom.xml中。
  2. 左侧Core下,选DevToolsLombok(可选可不选)。其中Lombok 插件可以让我们写代码更快更爽,谁用谁知道,2333。至于安装插件去网上搜吧。
  3. Web下,选Web,必须选,否则这还能是web工程吗。。
  4. SQL下,选MySQL,JDBC,MyBatis,我们需要用到的与数据库进行交互的工具。
  5. 选好后 Next下一步。
    在这里插入图片描述

图4

  1. 同上项目名称为ssmspringboot。
  2. 保存路径自己选就行。
  3. 下方更多设置,没意外默认就行。
  4. 弄好后点 Finish 。
    在这里插入图片描述

到了这里,我们就可以说项目已经搭建起来了!!!!!!!


工程目录


他是长这个样子的
在这里插入图片描述


代码编写


目的:我们要实现数据库交互完成登陆页面的操作。

工程刚刚建好后,右下角会出现一个弹窗。点 Enable Auto-Import 即可,让IDEA帮我们自动导包。
在这里插入图片描述


数据库


1.建表

#为了方便主键id也没弄,就用户名和密码

CREATE TABLE `user` (
  `username` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '用户名',
  `password` varchar(255) COLLATE utf8_bin NOT NULL COMMENT '密码'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

2.添加信息

#就插入一条数据
INSERT INTO `user` VALUES('xiaofang','1234')

pom文件修改


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!--你的项目概述-->
    <groupId>com.example</groupId>
    <artifactId>ssmspringboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>ssmspringboot</name>
    <description></description>

    <!--SpringBoot启动需要的父依赖,好多pom的依赖帮我们配好了,可以ctrl点开看-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <!--依赖注入-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <!--默认生成的代码包括下面这行,我们必须删掉
            具体原因在application.properties编写中-->
            <!--<scope>runtime</scope>-->
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--页面跳转依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

完整项目目录

如下图所示:
在这里插入图片描述


User类(创建一个来接收查询出来数据的对象)

代码如下:

package com.example.ssmspringboot.domain;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;
/*
由于Lombok插件的原因只需要
@Data:生成所有,getter() setter() toString()等等方法 
@Setter :生成setter()方法
@Getter:生成getter()方法
*/
@Data
public class User {
    @Setter @Getter
    private String username;
    @Setter @Getter
    private String password;
}

UserMapper接口

代码如下:

package com.example.ssmspringboot.dao;

import com.example.ssmspringboot.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Mapper	//声明是一个Mapper,与springbootApplication中的@MapperScan二选一写上即可
@Repository
public interface UserMapper {
    User findByUsername(String username);
}

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.ssmspringboot.dao.UserMapper" >
	<!--由于application.properties配置文件中,声明了实体类在哪个包下
	所以直接写User就行。
	如果不声明:必须写全 com.example.ssmspringboot.domain.User
	-->
    <select id="findByUsername"  resultType="User">
        SELECT * FROM user WHERE username = #{username}
    </select>

</mapper>

Service层

1.UserService接口:

package com.example.ssmspringboot.service;

import com.example.ssmspringboot.domain.User;

public interface UserService {
    User getUser(String username);
}

2.UserServiceImpl.class:

package com.example.ssmspringboot.service.impl;

import com.example.ssmspringboot.dao.UserMapper;
import com.example.ssmspringboot.domain.User;
import com.example.ssmspringboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {
    //依赖注入
    @Autowired
    UserMapper userMapper;

    @Override
    public User getUser(String username) {
        return userMapper.findByUsername(username);
    }
}

UserController

代码如下:

package com.example.ssmspringboot.controller;

import com.example.ssmspringboot.domain.User;
import com.example.ssmspringboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller	//声明这是Controller层
public class UserController {
    //依赖注入
    @Autowired
    UserService userService;

    @RequestMapping(value="/login",method = RequestMethod.POST)
    public String login(User user) {
        //调用dao层
        System.out.println("前端"+user);
        User u = userService.getUser(user.getUsername());
        System.out.println("数据库"+u);
        if (u.getPassword().equals(user.getPassword())){
            return "success";
        }
        return "failed";
    }
}

SsmspringbootApplication类

代码如下:

package com.example.ssmspringboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication			//声明这是SpringBoot启动类
@EnableTransactionManagement	//开启事务管理
public class SsmspringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SsmspringbootApplication.class, args);
    }
}

application.properties配置文件

#数据库指向,school是我的数据库名,改成自己的
spring.datasource.url=jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=UTF-8
#数据库用户名
spring.datasource.username=root
#数据库密码
spring.datasource.password=admin
#出现mysql jdbc标红报错问题------>去pom.xml中删除mysql-connector-java下面的runtime那一行
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql

#Mybatis扫描
mybatis.mapper-locations=classpath*:mapper/*.xml
#起别名。可省略写mybatis的xml中的resultType的全路径
mybatis.type-aliases-package=com.example.ssmspringboot.domain

前端页面

1.index.html页面
由于SpringBoot的特性,没有之前的WEB-INF文件夹了,所以 static 文件夹下的index页面,只要访问localhost:8080就能访问到主页,不再需要项目名了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<h1 align="center">请登录</h1>
<form action="/login" method="post">
    <table align="center" width="80%" border="1">
        <tr>
            <td width="40%">USERNAME:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td width="40%">PASSWORD:</td>
            <td><input type="password" name="password"></td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" value="LOGIN">
            </td>
        </tr>
    </table>
</form>
</body>
</html>

2.success.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>成功了</title>
</head>
<body>
<h1>恭喜你,登陆成功!</h1>
</body>
</html>

3.failed.html页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>出错了</title>
</head>
<body>
<h1>你出错了,你知道吗?</h1>
</body>
</html>

测试

到此为止,我们的项目已经彻底的搭建好了,接下去就是测试了,见证奇迹吧~
1.运行SsmspringbootApplication类的 main 方法

2.浏览器输入 localhost:8080
在这里插入图片描述

恭喜你,成功了~~~~~~~~~~~~~

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值