Navicat 下载地址下载地址
Navicat 安装步骤
欢迎页面
同意协议
设置安装路径
创建桌面快捷方式
点击安装
安装完成
Navicat 激活教程
下载破解激活补丁后,点击无限试用Navicat.bat
百度网盘 下载激活补丁 提取码: uvii
将winmm.dll复制到安装navicat目录,默认目录如下
激活成功
打开Navicat17 看到没有试用提示和激活提示,说明破解成功。此时已永久激活
下载Intellij idea
安装
设置安装路径
设置安装选项
开始 安装
安装完成
Intellij Idea 激活教程
百度网盘 下载激活软件
提取码: fi68
解压zip并进入scripts目录
运行激活脚本
Windows 双击运行install-all-users.vbs
MAC/Linux运行install.sh
等待一会,直至出现Done
打开IDEA激活
再选择Activation code
输入 IDEA激活码.txt 中的激活码,点击Activate,完成激活 下载激活码 百度网盘提取码: 17z6
若激活后提示激活码无效或者We could not validate your license FV8EM46DQYC5AW9或者This license 00T7D0MMPl has been suspended等情况,可配置代理解决
配置代理:
安装MySQL数据库
下载MySQL
设置安装路径
MySQL 配置
验证MySQL 数据库是否安装成功
出现如下图所示表示安装成功
Navicat 添加连接
Navicat 创建数据库
| 标题 | |
|---|---|
| 数据库命名 | 最好和导入的sql文件名一样 |
| 字符集 | 选择utf8的。(mb3和mb4区别就是mb4能表示更多的字符,如果用不到扩容去选择utf8mb4会有点浪费空间) |
| 排序规则填写 | 选择general_ci结尾的(ci:大小写不敏感、cs:区分大小写、bin:以二进制存储并且区分大小写) |
创建一张用户表
在数据中插入数据
Spring Boot 项目创建
创建Bean类
kotlin
package com.shop.app.entity;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User {
@JsonInclude(JsonInclude.Include.NON_NULL)
private Integer id;
// todo 账号
@JsonInclude(JsonInclude.Include.NON_NULL)
private String account;
// todo 密码
@JsonInclude(JsonInclude.Include.NON_NULL)
private String password;
// todo 登录的token
@JsonInclude(JsonInclude.Include.NON_NULL)
private String token;
}
创建UserMapper
arduino
package com.shop.app.dao;
import com.shop.app.entity.User;
public interface UserMapper {
/**
* 插入用户
*/
int insertUser(User user);
/**
* 根据用户名称查询
*/
int selectUserCountByAccount(String account);
}
创建UserService
arduino
package com.shop.app.service;
import com.shop.app.entity.User;
public interface UserService {
/**
* 插入用户
*/
int insertUser(User user);
/**
* 根据用户名称查询
*/
int selectUserCountByAccount(String account);
}
实现UserService接口
java
package com.shop.app.service.impl;
import com.shop.app.dao.UserMapper;
import com.shop.app.entity.User;
import com.shop.app.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService{
private final UserMapper userMapper;
@Autowired
public UserServiceImpl(UserMapper userMapper) {
this.userMapper = userMapper;
}
@Override
public int insertUser(User user) {
return userMapper.insertUser(user);
}
@Override
public int selectUserCountByAccount(String account) {
return userMapper.selectUserCountByAccount(account);
}
}
创建UserController
java
package com.shop.app.controller;
import com.shop.app.common.Constants;
import com.shop.app.common.ServiceResultEnum;
import com.shop.app.entity.User;
import com.shop.app.service.UserService;
import com.shop.app.util.JwtUtil;
import com.shop.app.util.result.Result;
import com.shop.app.util.result.ResultGenerator;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
@Controller
public class UserController {
@Resource
UserService userService;
// todo 登录
@RequestMapping(value = Constants.API_LOGIN, method = RequestMethod.POST)
@ResponseBody
public Result<Object> apiLogin(@ModelAttribute User user) {
// todo 注册手机号码
String account = user.getAccount();
if (Objects.isNull(account)) {
return ResultGenerator.genFailResult("参数异常!");
}
// todo 查询 注册的用户
int count = userService.selectUserCountByAccount(account);
if (count > 0) {
String jwtToken = getJwtToken(user);
user.setToken(jwtToken);
// todo 清空账号
user.setAccount(null);
// todo 清空密码
user.setPassword(null);
// todo 返回登录的用户信息
return ResultGenerator.genSuccessDataResult(user);
}
// todo 登录失败
String loginFailMsg = ServiceResultEnum.LOGIN_FAIL.getResult();
return ResultGenerator.genFailResult(loginFailMsg);
}
// todo 生成 token
private String getJwtToken(User user) {
// todo 其他数据以map集合存放在token中
Map<String, String> dataMap = new HashMap<>();
dataMap.put("account", user.getAccount());
// todo 生成token并存入数据返回
return JwtUtil.getToken(dataMap);
}
}
配置 application.properties
ini
spring.application.name=app
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
# 指定数据源名称
spring.datasource.name=database_name_datasource
spring.datasource.url=jdbc:mysql://localhost:3306/database_name?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
#数据库登录账号 root
spring.datasource.username=root
# 数据库登录密码 mima123123
spring.datasource.password=mima123123
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
spring.servlet.multipart.max-request-size=500MB
spring.servlet.multipart.max-file-size=10MB
server.port=8085
debug=false
pom.xml 文件配置
xml
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
<relativePath/>
</parent>
<groupId>com.shop</groupId>
<artifactId>app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>app</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- todo JDBC场景依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- todo MySQL场景依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 引入 MyBatis 场景启动器,包含其自动配置类及 MyBatis 3 相关依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!-- todo jwt-->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.18.2</version>
</dependency>
<!-- todo Lombok引入-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
</project>