【SpringBoot】DEMO:实战①——注册功能实现

DEMO:【SpringBoot】实战①——注册功能实现

SpringBoot学习视频

最近看的小匠SpringBoot的教学视频,看了20多章的网课,跟着老师跑,感觉比较迷,希望知识变现

小匠视频链接: https://www.bilibili.com/video/av65117012.

实现过程

  1. 项目结构

项目结构

  1. 创建新的maven项目,注入依赖
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!--整合mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--json @responseBody/@requestBody-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.54</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  1. 创建入口,控制器,HTML页面;
  • 入口
@SpringBootApplication
public class HomeworkApplication {
    public static void main(String[] args) {
        SpringApplication.run(HomeworkApplication.class, args);
    }
}
  • 控制器
@Controller
public class RegiestController {
    
    //实现自动装配
    @Autowired
    private UserMapper userMapper;
    
    //进入注册界面
    @GetMapping("/")
    public String regiset(){
        return "regiest";
    }


    //点击注册按钮后,获取input中的两个name,作为参数回传到regiest_show(),进行检测
    @PostMapping("/regiest")
    public String regiest_show(
            @RequestParam("username") String username,
            @RequestParam("password") String password,
            Model model
    ){
        //把前端的username和password写入user对象,方便后续操作
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);

        //使用findByUsername()方法,判断userCheck是否为空(在数据库中是否存在)
        User userCheck = userMapper.findByUsername(username);
        if(userCheck == null){
            //不存在,执行插入操作,注册成功,返回ok_regiest页面
            userMapper.add(user);
            model.addAttribute("username",username);
            model.addAttribute("password",password);
            return "ok_regiest";
        }else{
            //存在,返回check_regiest页面
            model.addAttribute("username",username);
            return "check_regiest";
        }
    }
    
    //check_regiest页面中实现<a>的跳转
    @GetMapping("/regiest")
    public String CheckRegiest(){
        return "regiest";
    }
}
  • HTML页面
    • 注册页面:regiest
    <form action="/regiest" method="post">
        用户名:<input name="username" id="username" type="text"/><br>
        密  码:<input name="password" id="" type="password"> <br>
        <input type="submit" value="注册">
    </form>
    
    • 注册成功页面
    你注册的用户名为:<span th:text="${username}"></span><br>
    你注册的密码为:<span th:text="${password}"></span>
    
    • 注册失败页面
    <p>你注册的ID:<span th:text="${username}"></span>已经被注册过了,请重新注册</p>
    <a href="/regiest">回注册界面吧</a>
    
  1. Mapper层,用于封装数据库语句
@Mapper
public interface UserMapper {
    //注册成功,插入一条数据
    @Insert("insert into user(username,password) values (#{username},#{password})")
    void add(User user);
    //检验注册的username是否已经存在数据库中,传进username进行与数据库比较
    @Select("select * from user where username = #{username}")
    User findByUsername(@Param("username") String username);
}
  1. Model层,作为数据库数据的映射;
public class User {
    private Long id;
    private String username;
    private String Password;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return Password;
    }
    public void setPassword(String password) {
        Password = password;
    }
}
  1. application.properties 文件
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/user_spring?serverTimezone=UTC&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=1234

7.数据库的实现

  • 使用mysql
CREATE TABLE `user`  (
  `id` bigint(32) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

8.完事!

效果展示

  1. 注册功能

在这里插入图片描述
2. 注册成功

在这里插入图片描述

  1. 注册失败
    在这里插入图片描述
发布了28 篇原创文章 · 获赞 4 · 访问量 1333

猜你喜欢

转载自blog.csdn.net/weixin_44100826/article/details/103212199
今日推荐