IDEA_JAVAspringboot实现用户登录_连接mysql

JAVAspringboot连接mysql实现用户登录模块

如何实现呢?

  1. 构建springboot项目,添加thymeleaf、web、mysql、jdbc、lombok依赖。导入静态资源html页面到resources下的templates下,其css、img和js放在resources下的static里面。
  2. 创建一个yml的配置文件,用来写连接数据库的相关信息、端口等。
  3. 在config包下创建一个mvccontroller类,用来控制URL定位页面。
  4. 在dao包下创建一个logindao的接口,使用jpa程序运行时获得用户账号和密码。
  5. 在model包下创建一个实体类userbean,对接mysql数据表中的字段。
  6. 在service包下创建一个类LoginClservice,写要怎么做,也就是要怎么实现用户登录。
  7. 在controller包下创建一个类logincontroller,用来控制页面,是登录跳转还是返回用户账号密码错误。
  8. 在controller包下创界一个类jumpcontroller,用来实现页面跳转。

1. 构建springboot项目,添加thymeleaf、web、mysql、jdbc、lombok依赖。导入静态资源html页面到resources下的templates下,其css、img和js放在resources下的static里面。

在这里插入图片描述

2. 创建一个yml的配置文件,用来写连接数据库的相关信息、端口等。

spring:
  jpa:
    open-in-view: false
  datasource:
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/yeujuan?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
server:
  port: 8080

3. 在config包下创建一个mvccontroller类,用来控制URL定位页面。

写入首页或者其他页面的路径,就可以直接在URL上写地址定位到某个页面。如:localhost:8080 就可以直接定位到index页。

import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Controller
public class MyMvccontroller implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
        registry.addViewController("/index").setViewName("index");
    }
}

4. 在dao包下创建一个logindao的接口,jpa程序运行时获得用户账号和密码。

import com.example.demo.model.UserBean;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface LoginDao extends JpaRepository<UserBean, Integer> {


    UserBean findByUsernameAndPassword(String name, String password);

    //这是使用的jpa,程序运行时,会自动识别findBy后面的字段部分。

}

5. 在model包下创建一个实体类userbean,对接mysql数据表中的字段。

id为主键,自动增长。

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


@Entity
@Table(name = "user")
public class UserBean {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String username;
    private String password;
    private int role;


    public int getId() {
        return id;
    }

    public void setId(int 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) {
        this.password = password;
    }

    public int getRole() {
        return role;
    }

    public void setRole(int role) {
        this.role = role;
    }
}

6. 在service包下创建一个类LoginClservice,写要怎么做,也就是要怎么实现用户登录。

定义chick方法比较前台页面传来的用户名和密码是否一致

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.demo.dao.*;
import com.example.demo.model.*;

@Service
public class LoginClservice {
    @Autowired
    private LoginDao loginDao;//与dao层进行交互
    public String chick(String username,String userpassword) {
        UserBean b = loginDao.findByUsernameAndPassword(username, userpassword);
        if (b == null) {
            return "null";
        }
        String aString = b.getUsername();
        String bString = b.getPassword();
        if (aString.equals(username) && bString.equals(userpassword)) {
            return "success";
        } else {
            return "error";
        }
    }
}

7. 在controller包下创建一个类logincontroller,用来控制页面,是登录跳转还是返回用户账号密码错误。

如果登录成功就跳转到std_index页面,如果登录失败就跳转到原来的登录界面,并显示用户账号或密码错误的信息。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.example.demo.model.*;

import com.example.demo.service.*;

@Controller
@RequestMapping(value = "/intologin/")//接口注解
public class LoginController {

    @Autowired  //与service层进行交互
    private LoginClservice loginClService;
    @RequestMapping(value = "user")
    public String getLoginCl(@RequestParam("name") String name, @RequestParam("password") String password, Model model){

        String b;
        b=loginClService.chick(name,password);
        if(b=="success"){
            return "std_index";
        }
        else {
            model.addAttribute("msg","用户名或者密码错误");
            return "login";
        }
    }
}

8. 在controller包下创界一个类jumpcontroller,用来实现页面跳转。

实现页面跳转需要在HTML页面做上标注,例如index页面点击登录后页面跳转到log_cover页面。
在这里插入图片描述
代码如下:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class JumpController {
    @RequestMapping(value = "/log_login")
    public String log_login(){
        return "log_cover";
    }
    @RequestMapping(value = "login")
    public String login(){
        return "login";
    }
}

最后导入HTML页面的时候不要忘了要更改一下HTML页面,一些语法要注意,附上例图:

在这里插入图片描述

结果展示:

登录成功页面
在这里插入图片描述
登录失败页面
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值