目录
2.POJO(Entity)编写-UserBean.java
3.Controller编写-UserController.java
6.配置文件编写-application.properties
7.启动类编写-KettleProcessorApplication.java
一、准备工作
1.项目结构
这里根据自己的情况选择
我们用的是Maven项目
2.项目截图
3.pom配置
二、登录注册(后台)
1.创建数据库
建表语句:
CREATE TABLE `user` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '用户表id',
`username` varchar(50) NOT NULL COMMENT '用户名',
`password` varchar(50) NOT NULL COMMENT '用户密码,MD5加密',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'
2.POJO(Entity)编写-UserBean.java
package com.cary.myproject.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data//提供了set、get方法及toString
@AllArgsConstructor
@NoArgsConstructor
public class UserBean implements Serializable {
private Integer id;
private String username;
private String password;
private String email;
private String phone;
//为下方时间,添加Json注解
@JsonFormat(pattern = "yyyy-MM-mm HH:mm:ss")
private Date crate_time;
@JsonFormat(pattern = "yyyy-MM-mm HH:mm:ss")
private Date update_time;
}
3.Controller编写-UserController.java
添加pom配置
package com.cary.myproject.controller;
import cn.hutool.core.util.StrUtil;
import com.cary.myproject.pojo.UserBean;
import com.cary.myproject.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Slf4j
@Controller // 不能用@RestController
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/hello")
public String hello(){
return "login";
}
@RequestMapping("/register")
public String register(){
return "signup";
}
@RequestMapping(value = "/login",method = RequestMethod.POST)
public String login(String username,String password){
UserBean user=userService.login(username,password);
log.info("username:{}",username);
log.info("password:{}",password);
//hutool-core 核心,包括Bean操作、日期、各种Util等
if(StrUtil.isNotEmpty(username)) {
if(user != null) {
return "success";
//方法引用-遍历集合
//Opt.ofEmptyAble(userBean).ifPresent(System.out::println);
}
} else {
return "用户名不允许为空";
}
return "error";
}
@RequestMapping(value = "/signup",method = RequestMethod.POST)
public String signup(String username, String password){
userService.register(username,password);
return "success";
}
}
4.Service编写-UserService.java-
package com.cary.myproject.service;
import com.cary.myproject.pojo.UserBean;
public interface UserService {
public UserBean login(String username, String password);
public void register(String username, String password);
}
package com.cary.myproject.service;
import com.cary.myproject.mapper.UserMapper;
import com.cary.myproject.pojo.UserBean;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class UserServicelmpl implements UserService{
@Resource
private UserMapper userMapper;
@Override
public UserBean login(String username, String password) {
return userMapper.getInfo(username,password);
}
@Override
public void register(String username, String password) {
userMapper.saveUser(username,password);
}
}
5.Mapper编写-UserMapper.java
添加pom配置
package com.cary.myproject.mapper;
import com.cary.myproject.pojo.UserBean;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper //添加Mapper注解,就不用写xml的mapper映射文件了
public interface UserMapper {
//多个参数要加@Param修饰
//思考:xml中的<include>代码片段怎么配
@Select("SELECT * FROM user WHERE username=#{username} AND password= #{password}")
UserBean getInfo(@Param("username") String username, @Param("password") String password);
@Insert("INSERT INTO user(username,password) VALUE(#{username},#{password})")
void saveUser(@Param("username") String username,@Param("password") String password);
}
package com.cary.myproject.controller;
import cn.hutool.core.util.StrUtil;
import com.cary.myproject.pojo.UserBean;
import com.cary.myproject.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/hello")
public String hello(){
return "login";
}
@RequestMapping("/register")
public String register(){
return "register";
}
@RequestMapping(value = "/login",method = RequestMethod.POST)
public String login(String username,String password){
UserBean user=userService.login(username,password);
//hutool-core 核心,包括Bean操作、日期、各种Util等
if(StrUtil.isNotEmpty(username)) {
if(user != null) {
return "success";
//方法引用-遍历集合
//Opt.ofEmptyAble(userBean).ifPresent(System.out::println);
}
} else {
return "用户名不允许为空";
}
return "error";
}
@RequestMapping(value = "/signup",method = RequestMethod.POST)
public String signup(String username, String password){
userService.register(username,password);
return "success";
}
}
6.配置文件编写-application.properties
spring.thymeleaf.cache=false
# 配置端口号为8080
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC
# Mysql用户
spring.datasource.username=root
# Mysql对应用户密码
spring.datasource.password=123456
#配置MyBatis的XML文件路径
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.cary.myproject.pojo
spring.thymeleaf.prefix=classpath:/templates/
注意:spring.thymeleaf.prefix=classpath:/templates/
是两个斜杠
7.启动类编写-KettleProcessorApplication.java
添加pom配置
三、登录注册(前台)
1.登录页面-login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录系统</title>
</head>
<body>
<form role="form" action="/login" method="post">
账号:<input type="text" id="username" name="username"><br>
密码:<input type="password" id = "password" name = "password"> <br>
<input type="submit" id = "login" value = "登录"></form>
<a href="/register">注册</a>
</body>
</html>
2.注册页面-signup.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<form role="form" action="/signup" method="post">
请输入姓名:<input type="text" name="username" id="name"><br>
请输入密码:<input type="password" name="password" id="password"><br>
<input type="submit" name="sign" value="提交">
</form>
</body>
</html>
3.成功页面-success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎,恭喜登录成功/注册成功</h1>
</body>
</html>
4.失败页面-error.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>登录失败!</h1>
</body>
</html>