SpringBoot + Mybatis 快速入门实战
创始人
2024-06-02 14:00:32
0

一.创建Spring项目

出现报错的话,换一个jdk创建,一般java 8
在这里插入图片描述
选择Spring Web
在这里插入图片描述
测试一下
在这里插入图片描述
默认端口8080,但是Vue也需要8080,因此,后端设置一个端口3000
在这里插入图片描述
再次测试,成功
在这里插入图片描述
此处,如何kill一个端口占用

1.找到135端口的进程
netstat -ano | findstr "135"
2.杀死pid76号的进程
taskkill /pid 76 /f

二.Spring Boot + Mybatis整合开发

A:项目结构

在这里插入图片描述

在这里插入图片描述

B:具体流程实现

1.pom.xml中添加依赖

  org.springframework.bootspring-boot-starter-jdbc3.0.4org.mybatis.spring.bootmybatis-spring-boot-starter2.2.2mysqlmysql-connector-java8.0.30org.projectlomboklombok1.18.22providedjunitjunit4.11test

(可以省略)

 src/main/java**/*.properties**/*.xml**/*.ymlfalse

2.数据库相关

2.1先使用navcat创建创建一个数据库,Idea进行链接

在这里插入图片描述

2.2修改application.properties文件

修改为yml文件

server:port: 3000spring:datasource:username: rootpassword: XXXXXurl: jdbc:mysql://localhost:3306/dms?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Drivermybatis:# mybatis  sql语句文件[resources/mybatis下的xml文件]mapper-locations: classpath:mybatis/*.xml# 实体别名type-aliases-package: com.example.test.pojo#show Sql
logging:level:com.example.test: debug

3.解决跨域问题

package com.coursework.backend.config;import jakarta.servlet.*;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.context.annotation.Configuration;import java.io.IOException;@Configuration
public class CorsConfig implements Filter {@Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {HttpServletResponse response = (HttpServletResponse) res;HttpServletRequest request = (HttpServletRequest) req;String origin = request.getHeader("Origin");if(origin!=null) {response.setHeader("Access-Control-Allow-Origin", origin);}String headers = request.getHeader("Access-Control-Request-Headers");if(headers!=null) {response.setHeader("Access-Control-Allow-Headers", headers);response.setHeader("Access-Control-Expose-Headers", headers);}response.setHeader("Access-Control-Allow-Methods", "*");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Credentials", "true");chain.doFilter(request, response);}@Overridepublic void init(FilterConfig filterConfig) {}@Overridepublic void destroy() {}
}

4.各种层的实现+逻辑分析

在这里插入图片描述

1.controller:@RestController@RequestMapping("/login")
2.mapper@Mapper
3.pojo@Data@AllArgsConstructor@NoArgsConstructor@ToString		
4.service无
5.serviceimpl@Service		

4.1 pojo层

package com.coursework.backend.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class SystemAdminUser {private Integer id ;private String username;private String password;
}

4.2 mapper层

package com.coursework.backend.mapper;import com.coursework.backend.pojo.SystemAdminUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;@Mapper
public interface SystemAdminUserMapper {SystemAdminUser systemAdminUser(@Param("myusername") String username,@Param("mypassword") String password);
}

4.3 resource/mybatis层



任意字符}-->

4.4 service层

package com.coursework.backend.service;import java.util.Map;public interface LoginService {Map login_systemadmin(String username, String password);
}

4.5 serviceimpl层

package com.coursework.backend.service.impl;import com.coursework.backend.mapper.SystemAdminUserMapper;
import com.coursework.backend.pojo.SystemAdminUser;
import com.coursework.backend.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.HashMap;
import java.util.Map;@Service
public class LoginServiceImpl implements LoginService {@Autowiredprivate SystemAdminUserMapper systemAdminUserMapper ;//系统管理员@Overridepublic Map login_systemadmin(String username, String password){Map map = new HashMap<>();SystemAdminUser sau = systemAdminUserMapper .systemAdminUser(username,password);if(sau==null){map.put("message","账号或密码错误");} else {map.put("message", "success");}return map;}
}

4.6 controller层

package com.coursework.backend.controller;import com.coursework.backend.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import java.util.Map;@RestController
@RequestMapping("/login")
public class LoginController {@Autowiredprivate LoginService loginService;//系统用户登录验证@RequestMapping("/systemadmin")public Map login(@RequestParam Map map){String username = map.get("username");String password = map.get("password");return loginService.login_systemadmin(username,password);}
}

4.7前端请求即可

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...