基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)

时间:2024-03-19 22:41:18

基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)

前言
说实话,小编写博客真的喜欢写的很详细的,这一篇文章小编带大家做一做如何完成登陆与注册操作,话不多说我们开始吧。
如何创建spring boot 项目以及配置Idea请访问
link.https://blog.csdn.net/weixin_43055096/article/details/87881113

主体内容

  1. 配置pom.xml,点击pom.xml,大家看到的controller dao entity这些文件夹,不要急后面会说。基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)
    这是小编的pox.xml配置的一部分,大家可以参考一下,如何大家的Meave配置成功我们的项目是可以自动导入jar包的(啊哈哈哈哈,这就meave的强大),如果大家不清楚,请点击右上角的那个复制。
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <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-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.2</version>
        </dependency>
    </dependencies>

此时我们在点击application.properties文件,这个文件非常重要,到底有多么重要呢,就像…
基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)

点击进入,以下就是里面的配置文件,在这里每个人前四行配置是不一样的,而spring.thymeleaf.cache=false,这里我们在项目调试的时候要设置成false。

spring.datasource.url = jdbc:mysql://localhost:3306/day01?serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = 1234
spring.datasource.driverClassName = com.mysql.jdbc.Driver

spring.jpa.database = MYSQL

spring.jpa.show-sql = true

spring.jpa.hibernate.ddl-auto = update

spring.thymeleaf.cache=false

我们做到这里,配置就算是完成了,咋们下面就按照小编的模式完成项目的主要类与接口
基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)

上面写完之后
咋们想创建实体类,也就是User,一定要注意小编的注解

package com.example.demo.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue
    private int id;

    private String username;
    private String password;

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
    public User(){

    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

@Id 表示主键
@GeneratedValue 表示自增长
@Entity 表示这是个实体类,强大的地方就在于他可以自动创建与实体类对应的表,

现在来到UserDao

 package com.example.demo.dao;

import com.example.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

@Repository
public interface UserDao extends JpaRepository<User,Integer> {

    @Query(value = "select * from  user where username=:username and password=:password",nativeQuery = true)
    User findUserByUsernameAndPassword(String username,String password);
}

JpaRepository<User,Integer>,里面的两个参数第一个一定要是目前你要用到的实体类
@Query 就是我们主要的写sql的方式了

现在再来到 UserService 这是个接口,为了让项目规范,小编就不随意了

package com.example.demo.service;

import com.example.demo.entity.User;

public interface UserService {
 
    User findUserByUsernameAndPassowrd(String username,String password);
 
    boolean addUser(User u);
}

回到UserServiceImp这个类是一个实现类

package com.example.demo.service;

import com.example.demo.dao.UserDao;
import com.example.demo.entity.User;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserServiceImp implements UserService{
    @Resource
    private UserDao ud;

    @Override
    public User findUserByUsernameAndPassowrd(String username, String password) {
        return ud.findUserByUsernameAndPassword(username,password);
    }

    @Override
    public boolean addUser(User u) {
        return ud.save(u)!=null;
    }
}

@Resource
private UserDao ud; 这句话的意思是实现UserDao,说白了就是可以直接调用UserDao的所有方法。而且ud自带了一些方法,比如sava这个方法就是我们保存数据的一个主要方式。

现在就是controller了 我们先写UserController

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserServiceImp;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

@RestController
public class UserController {

@Resource
    private UserServiceImp usi;
//以下是登录
@RequestMapping(value = "/userLogin/submit",method = RequestMethod.POST)
   public boolean userLogin(HttpServletRequest request){
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    System.out.println(username);
    if (usi.findUserByUsernameAndPassowrd(username,password)==null){
        return false;
    }
    return true;
}
//以下是注册
    @RequestMapping(value = "/userRegister/submit",method = RequestMethod.POST)
    public boolean userRegister(HttpServletRequest request){
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        User u =new User(username,password);
        return usi.addUser(u);
    }



}

注意两点 通过映射来找到地址 @RequestMapping
value就是地址这里是自己写的,methed就是提交方式,之后小编会用from提交,当然ajax提交是最好的,不过我懒,,,,,,
还有别忘了写@RestController这个标签,一定要分清楚@RestController与@Controller的区别

好啦,现在就是UserNodeController,这里就用的是@Controller,因为这个类是为了返回结点。

package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UserNodeController {
    @RequestMapping(value = "/index")
    public String index(){
        return "/index";
    }

}

我们开始在这里创建index了基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)

一下是Index的代码,大家注意看action 与我们上面的UserController里面的value。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

登陆
<form action="/userLogin/submit" method="post">
    账号 <input type="text" name="username"/> <hr>
    密码 <input type="password" name="password"/>
    <input type="submit" value="提交">
</form>
<hr>
注册
<form action="/userRegister/submit" method="post">
    账号 <input type="text" name="username"/> <hr>
    密码 <input type="password" name="password"/>
    <input type="submit" value="提交">
</form>
</body>
</html>

点击运行
基于IDEA创建Spring boot 项目实现登陆注册(Spring的学习之旅 二)

这样就成功了,大家可以自己试试,有任何问题,请留言评论,小编都会回答