话不多说.先看总体建包图
相信大家对于如何搭建一个Springboot项目 已经熟悉不过了.所以这步跳过.首先导入相关的依赖(复制我的也行)
<?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>
<groupId>com.yusael</groupId>
<artifactId>ems</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>ems</name>
<description>springboot + mybatis + thymeleaf 的 ems</description>
<properties>
<java.version>1.8</java.version>
</properties>
<!--继承springboot父项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
</parent>
<dependencies>
<!--引入springboot的web支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Redis支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--测试ll-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--日志-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-sqlmap</artifactId>
<version>3.0-beta-10</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>3</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2,先构建数据库表
3.在entity层建一个User实体类,添加get,set,tostring方法.
4.在controller层先编写跳转和登录注册方法.
Indexcontroller内容如图
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
@GetMapping("/index")
public String toIndex(){
System.out.println("登录");
return "/login";
}
@GetMapping("/tosave")
public String toSave(){
return "/addEmp";
}
// @GetMapping("toPwd")
// public String toPwd(){
// return "/Pwd";
// }
// @GetMapping("toRegister")
public String toRegister(){
System.out.println("注册");
return "/register";
}
}
登录注册方法UserController如下:
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public String login(String username, String password, Model model) {
User login = userService.login(username, password);
if (login != null) {
return "redirect:/findAll";
} else
model.addAttribute("msg", "用户名或密码错误!");
return "/login";
}
@PostMapping("/register")
public String register(User user) {
if (1==1){
userService.register(user);
System.out.println("注册成功");
return "redirect:/index";
}else
return "redirect:/toRegister";
}
}
5.在controller同级目录下建一个mapper包.
package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface UserMapper {
void save(User user);
User login(@Param("username") String username,@Param("password") String password);
}
6. .在controller同级目录下建一个service包先写Service
package com.example.demo.service;
import com.example.demo.entity.User;
import java.util.List;
public interface UserService {
User login(String username, String password);
void register(User user);
}
写完Service之后写UserServiceimpl
package com.example.demo.service;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.UUID;
@Service("userService")
public class UserServiceimpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User login(String username,String password) {
return userMapper.login(username ,password);
}
@Override
public void register(User user){
user.setId(UUID.randomUUID().toString());
userMapper.save(user);
}
}
7.在resources目录下建mapper包在mapper下写一个UersMapper.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.demo.mapper.UserMapper">
<select id="login" resultType="User">
SELECT id,username,password FROM user
WHERE username=#{username} and password=#{password}
</select>
<insert id="save" parameterType="User">
INSERT into user (username,realname,password) VALUE (#{username},#{realname},#{password})
</insert>
</mapper>
至此后端基本完了.最后将前端页面导入即可 .主要是实现的思想和思路.
想要源码可以留言,后续实现对其增加日志和缓存以及对员工的管理.