这是SpringBoot整合MyBatis实现的简易登陆注册。这个demo,我已经上传到资源下载和GitHub仓库了,链接如下:
资源下载地址:CSDN资源下载
GitHub仓库地址:Login
-- 创建数据库
CREATE DATABASE IF NOT EXISTS example CHARACTER SET utf8 ;
USE example;
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(32) UNIQUE NOT NULL,
password VARCHAR(32) NOT NULL
);
-- 添加数据
INSERT INTO USER VALUES
(1,"admin","111"),
(2,"manager","222"),
(3,"normal","333");
SELECT * FROM user;
<html lang="en">
<head>
<meta charset="UTF-8">
<title>logintitle>
head>
<body>
<form method="post" action="/user/login">
用户名:<input name="username" type="text"><br>
密码:<input name="password" type="password"><br>
<input type="submit" value="登录验证">
<input type="button" onclick="javascript:window.location.href='regist.html'" value="去注册页面">
form>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册title>
head>
<body>
<form action="/user/regist" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="注册验证"><br>
<input type="button" onclick="javascript:window.location.href='login.html'" value="返回登录界面">
form>
body>
html>
<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.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.2.1.RELEASEversion>
<relativePath/>
parent>
<groupId>com.jacksgroupId>
<artifactId>loginartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>loginname>
<description>login project for Spring Bootdescription>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.17version>
<scope>runtimescope>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>1.3.1version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>1.1.9version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
<exclusions>
<exclusion>
<groupId>org.junit.vintagegroupId>
<artifactId>junit-vintage-engineartifactId>
exclusion>
exclusions>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
# 数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/example?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
# 数据库连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initial-size=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=3000
# mapper映射
mybatis.type-aliases-package=com.jacks.login.pojo
mybatis.mapper-locations=classpath:mapper/*.xml
package com.jacks.login.pojo;
public class User {
private Integer id;
private String username;
private String password;
@Override
public String toString() {
return "User{" +
"id=" + id +
", user_name='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
//getter 和 setter 方法,节约篇幅,这里省略
package com.jacks.login.mapper;
import com.jacks.login.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
@Mapper
public interface UserMapper {
List<User> findAll();
User findByName(String name);
String findPswByName(String UserName);
void save(User user);
}
<mapper namespace="com.jacks.login.mapper.UserMapper">
<select id="findAll" resultType="User">
select * from User
select>
<select id="findByName" resultType="User">
select * from User where username = #{username}
select>
<select id="findPswByName" resultType="String">
select password from user where username = #{username}
select>
<insert id="save">
insert into user(username,password) value (#{username},#{password})
insert>
mapper>
package com.jacks.login.service;
import com.jacks.login.mapper.UserMapper;
import com.jacks.login.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
UserMapper userMapper;
public String login(User user){//TODO:登陆逻辑函数
try {
User userExistN = userMapper.findByName(user.getUsername());
if (userExistN != null){
String userExistP = userMapper.findPswByName(user.getUsername());
if (userExistP.equals(user.getPassword())){
return user.getUsername()+" 用户登录成功,欢迎您!";
}else {
return "登陆失败,密码错误!";
}
}else {
return "登陆失败,账户不存在";
}
}catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
}
public String regist(User user){//TODO:注册判断逻辑函数
try{
User userExist = userMapper.findByName(user.getUsername());
if (user.getUsername().equals("")){
return "账户名不能为空";
}else if (user.getPassword().equals("")){
return "密码不能为空";
}else if (userExist != null){
return "账户已经存在";
}else {
userMapper.save(user);
return "注册成功";
}
}catch (Exception e){
e.printStackTrace();
return e.getMessage();
}
}
}
package com.jacks.login.controller;
import com.jacks.login.pojo.User;
import com.jacks.login.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserService userService;
@PostMapping("/login")
public String login(User user){
return userService.login(user);
}
@PostMapping("/regist")
public String regist(User user){
return userService.regist(user);
}
}
代码的业务逻辑如下:
Mapper
负责连接数据库并进行相关的CRUD
操作。Service
借助Mapper
来完成登录注册的业务逻辑。Controller
接待浏览器访问,借助Service
提供登录注册服务。可以的话点个赞哦~
让我知道这篇博文对你有帮助。