海口建设局网站,郑州网站制作免费,erp定制开发价格,php 和wordpress写在开始:一个搬砖程序员的随缘记录文章目录 一、SpringBoot项目的搭建二、数据库配置1、新建数据库2、新建用户表 三、SpringBoot项目的配置 一、SpringBoot项目的搭建
项目搭建传送门#xff1a;从零开始#xff0c;SpringBoot项目快速搭建
二、数据库配置
1、新建数据库…写在开始:一个搬砖程序员的随缘记录文章目录 一、SpringBoot项目的搭建二、数据库配置1、新建数据库2、新建用户表 三、SpringBoot项目的配置 一、SpringBoot项目的搭建
项目搭建传送门从零开始SpringBoot项目快速搭建
二、数据库配置
1、新建数据库
在本地mysql数据库新建库库名vue_demo数据库名字可自行更改更改完记得在pom.xml中也同步更改
2、新建用户表
CREATE TABLE user (id int(11) NOT NULL,username varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,password varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;三、SpringBoot项目的配置
项目结构 下面是具体文件的代码 pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.3/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.cn/groupIdartifactIdvue_demo/artifactIdversion0.0.1-SNAPSHOT/versionnamevue_demo/namedescriptionDemo project for Spring Boot/descriptionpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.versionskipTeststrue/skipTestsdruid.version1.1.10/druid.versionmysql-connector.version8.0.16/mysql-connector.versionmybatis-plus.version3.3.2/mybatis-plus.version/propertiesdependencies!--SpringBoot通用依赖模块--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!--SpringBoot校验框架--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId/dependency!--集成druid连接池--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion${druid.version}/version/dependency!--Mysql数据库驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql-connector.version}/version/dependency!--lombok依赖--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!--SpringBoot配置处理--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependency!--MyBatis Plus 依赖--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion${mybatis-plus.version}/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project返回实体类封装ResultBody ResultBody.java
package com.cn.vuedemo.entity;/*** 请求** author demo*/
public class ResultBodyT {/*** 响应码*/private int code;/*** 消息*/private String message;/*** 数据*/private T data;public ResultBody(int code, String message, T data) {this.code code;this.message message;this.data data;}public ResultBody(String message) {this.code 200;this.message message;}public ResultBody(int code, String message) {this.code code;this.message message;}public ResultBody(T data) {this.code 200;this.message 请求成功;this.data data;}public ResultBody(int code) {this.code code;this.message 请求成功;}public int getCode() {return code;}public void setCode(int code) {this.code code;}public String getMessage() {return message;}public void setMessage(String message) {this.message message;}public T getData() {return data;}public void setData(T data) {this.data data;}
}用户实体类 User.java
package com.cn.vuedemo.entity;import lombok.Data;/*** author demo* date 2023/07/31 11:18*/
Data
public class User {/*** id* */private Integer id;/*** 账号* */private String username;/*** 密码* */private String password;
}登录方法入参 LoginReq.java
package com.cn.vuedemo.model.request;import lombok.Data;/*** author demo* since 2023/07/31 11:18*/
Data
public class LoginReq {/*** 账号* */private String username;/*** 密码* */private String password;
}service UserService.java
package com.cn.vuedemo.service;import com.cn.vuedemo.entity.User;
import com.cn.vuedemo.model.request.LoginReq;import java.util.List;/*** author demo* since 2023/07/31 11:18*/
public interface UserService {/*** 登录** param loginReq loginReq* return com.cn.vuedemo.entity.User* author demo* since 2023/07/31 11:18*/User login(LoginReq loginReq);
}service实现 UserServiceImpl.java
package com.cn.vuedemo.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cn.vuedemo.entity.User;
import com.cn.vuedemo.mapper.UserMapper;
import com.cn.vuedemo.model.request.LoginReq;
import com.cn.vuedemo.service.UserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;/*** author demo* since 2023/07/31 11:18*/
Service
RequiredArgsConstructor
public class UserServiceImpl implements UserService {private final UserMapper userMapper;Overridepublic User login(LoginReq loginReq) {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.lambda().eq(User::getUsername, loginReq.getUsername()).eq(User::getPassword, loginReq.getPassword());User user userMapper.selectOne(queryWrapper);return user;}
}mapper UserMapper.java
package com.cn.vuedemo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cn.vuedemo.entity.User;
import org.apache.ibatis.annotations.Mapper;/*** author demo* since 2023/07/31 11:18*/
Mapper
public interface UserMapper extends BaseMapperUser {
}控制层controller LoginController.java
package com.cn.vuedemo.controller;import com.cn.vuedemo.entity.ResultBody;
import com.cn.vuedemo.entity.User;
import com.cn.vuedemo.model.request.LoginReq;
import com.cn.vuedemo.service.UserService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;
import java.util.Objects;/*** author demo* date 2023/07/31 11:18*/
RestController
Slf4j
RequestMapping(/user)
RequiredArgsConstructor
public class LoginController {private final UserService userService;/*** 登陆** param loginReq loginReq* return com.cn.vuedemo.entity.ResultBody* author demo* since 2023/7/31*/PostMapping(value /login)public ResultBody login(RequestBody LoginReq loginReq) {log.info(loginReq: loginReq);User user userService.login(loginReq);if (Objects.isNull(user)) {return new ResultBody(500, 密码不正确);}return new ResultBody(user);}
}Over