SpringBoot+Mybatis 로그 인 등록 을 위 한 예제 코드

SpringBoot+Mybatis 가 실현 하 는 로그 인 등록 기능 을 배 운 Demo 는 이 Demo 를 실현 하기 위해 인터넷 에서 도 자료 와 코드 를 참고 했다.본 고 는 본인 이 Demo 를 실현 한 후의 개인 적 인 정리 로 생각 을 정리 할 수 있 도록 한다.
1.환경
  • jdk8 : “1.8.0_281”
  • Maven: 3.6.3
  • Idea:2020.2
  • Mysql:5.6.40
  • Navicat:10.1.7
  • 2.절차
    2.1 SpringBoot 프로젝트 만 들 기
    선택 의존 도 는 다음 과 같 습 니 다:
    웹 의 Spring Web.
    Template Engines 의 Thymeleaf.
    SQL 에 있 는 JDBC API,Spring Data JDBC,MySQL Driver.
    프로젝트 구성:
    在这里插入图片描述
    2.2 pom 의존 설정
    
    <?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>
     <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.4.3</version>
      <relativePath/> <!-- lookup parent from repository -->
     </parent>
     <groupId>com.haungkd</groupId>
     <artifactId>weblogindemo</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <name>weblogindemo</name>
     <description>Demo project for Spring Boot</description>
     <properties>
      <java.version>1.8</java.version>
     </properties>
     <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>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <scope>runtime</scope>
      </dependency>
      
      <!-- mybatis-->
      <dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>2.1.3</version>
      </dependency>
    
      <!--lombok-->
      <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
       <version>1.18.12</version>
       <scope>provided</scope>
      </dependency>
    
      <!--druid   -->
      <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid</artifactId>
       <version>1.2.3</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.xmlunit</groupId>
       <artifactId>xmlunit-core</artifactId>
      </dependency>
      <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis</artifactId>
       <version>3.4.6</version>
      </dependency>
     </dependencies>
    
     <build>
      <plugins>
       <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
       </plugin>
      </plugins>
     </build>
    
    </project>
    
    
    2.3 설정 파일
    在这里插入图片描述
    yml 파일 설정:
    그 중에서 url 의 데이터 베 이 스 는 대응 하 는 것 을 기억 합 니 다.제 라 이브 러 리 는 login 입 니 다.
    
    spring:
     datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     url: jdbc:mysql://localhost:3306/login?serverTimezone=GMT%2B8&useSSL=true
     username: root #   
     password: 123456 #  
    
    properties 파일 설정:
    
    #   
    server.port=8088
    #druid      
    type=com.alibaba.druid.pool.DruidDataSource
    #    
    spring.thymeleaf.cache=false
    #  mapper
    mybatis.mapper-locations=classpath:mapper/*.xml
    
    2.4 pojo 패키지 에서 실체 클래스 UserLogin 만 들 기
    
    package com.huangkd.weblogindemo.pojo;
    
    import javax.persistence.Table;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data // get/set   
    @AllArgsConstructor//     
    @NoArgsConstructor//     
    @Table(name = "userlogin")
    public class UserLogin {
     private String username;
     private String password;
    
     public String getUsername() {
      return username;
     }
    }
    
    
    2.5 데이터베이스 와 데이터 시트 만 들 기
    在这里插入图片描述
    저 는 login 라 이브 러 리 를 만 들 고 userlogin 표를 만 듭 니 다.필드 는 username 과 password 입 니 다.
    在这里插入图片描述
    2.6 연결 데이터베이스
    IDEA 오른쪽 에서 선택:
    Database――> ――> Data Source――> Mysql
    在这里插入图片描述
    테스트 가 통 하지 않 으 면 다음 과 같 습 니 다:
    Server returns invalid timezone. Need to set ‘serverTimezone' property.
    데이터베이스 시간 대 문제 입 니 다.
    해결 방법:
    맨 오른쪽 Advanced 를 열 고 server Timezone 을 찾 아 오른쪽 value 에 GMT 를 입력 하고 저장 하면 됩 니 다.
    2.7 Mapper 층(Dao):데이터베이스 영구 층
    mapper 패키지 아래 UserLoginMapper 인 터 페 이 스 를 만 듭 니 다.
    
    package com.huangkd.weblogindemo.mapper;
    
    import com.huangkd.weblogindemo.pojo.UserLogin;
    
    import org.apache.ibatis.annotations.Mapper;
    import org.springframework.stereotype.Repository;
    import java.util.List;
    
    
    @Mapper
    @Repository
    public interface UserLoginMapper {
    
     //        
    
     //    
     public List<UserLogin> queryAll();
     //    
    
     public int add(UserLogin userLogin);
    
     //       
    
     public UserLogin queryByUsername(String username);
    }
    
    
    resources 아래 UserLoginMapper.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.huangkd.weblogindemo.mapper.UserLoginMapper">
     <select id="queryAll" resultType="com.huangkd.weblogindemo.pojo.UserLogin">
      select * from userlogin
     </select>
     <insert id="add" parameterType="com.huangkd.weblogindemo.pojo.UserLogin">
      insert into userlogin values (#{username},#{password})
     </insert>
     <select id="queryByUsername" resultType="com.huangkd.weblogindemo.pojo.UserLogin">
      select * from userlogin where username=#{username}
     </select>
    </mapper>
    
    
    2.8 서비스 층:비 즈 니스 논리 층
    서비스 아래 새 인터페이스 UserLoginServicesI 와 클래스 UserLoginServicesImpl
    UserLoginServicesI 인터페이스:
    
    import com.huangkd.weblogindemo.pojo.UserLogin;
    
    import java.util.List;
    
    public interface UserLoginServicesl {
     //    
     public List<UserLogin> queryAll();
     //    
     public int add(UserLogin userLogin);
     //       
     public UserLogin queryByUsername(String username);
    }
    
    
    UserLoginServicesImpl 클래스:
    
    package com.huangkd.weblogindemo.services;
    
    import com.huangkd.weblogindemo.mapper.UserLoginMapper;
    import com.huangkd.weblogindemo.pojo.UserLogin;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class UserLoginServicesImpl implements UserLoginServicesl {
    
     @Autowired
     //Service   dao /mapper     service      dao/mapper   
     //              
     UserLoginMapper userLoginMapper;
     @Override
     public List<UserLogin> queryAll() {
      return userLoginMapper.queryAll();
     }
    
     @Override
     public int add(UserLogin userLogin) {
      return userLoginMapper.add(userLogin);
     }
    
     @Override
     public UserLogin queryByUsername(String username) {
      return userLoginMapper.queryByUsername(username);
     }
    }
    
    
    2.9 컨트롤 러 층:컨트롤 층
    controller 패키지 에 MyController 클래스 만 들 기:
    
    package com.huangkd.weblogindemo.controller;
    
    import com.huangkd.weblogindemo.pojo.UserLogin;
    import com.huangkd.weblogindemo.services.UserLoginServicesImpl;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class MyController {
     //controller   service 
     //    service   
     @Autowired
     UserLoginServicesImpl userLoginServices;
    
     //  
     @RequestMapping("/toLogin")
     public String toLogin() {
      return "login";
     }
    
     @RequestMapping("/loginSuccess")
     public String loginSuccess(Model model, UserLogin userLogin) {
      //         
      UserLogin userLogin1 = userLoginServices.queryByUsername(userLogin.getUsername());
      if (userLogin1 != null) { //       
       if (userLogin1.getPassword().equals(userLogin.getPassword())) {
        System.out.println(userLogin1.toString());
        return "success";
       } else {
        model.addAttribute("data", "     ");
        return "login";
       }
    
      } else { //      ,         
       model.addAttribute("data", "      ,    ");
       return "login";
      }
     }
    
    
     //  
     @RequestMapping("/toRegister")
     public String toRegister() {
      return "register";
     }
    
     @RequestMapping("/toRegisterSuccess")
     public String toRegisterSuccess(Model model,UserLogin userLogin) {
      //           
      int add = userLoginServices.add(userLogin);
      System.out.println("      ");
      model.addAttribute("data","    ,   ");
      return "login";
    
     }
    }
    
    
    2.10 전단 페이지
    在这里插入图片描述
    로그 인 페이지
    
    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
     <meta charset="UTF-8">
     <title>login</title>
    </head>
    <body background="back.jpg">
    <div align="center">
     <br><br><h2>    </h2><br><br>
     <span th:text="${data}" style="text-color:red;font-size: 10px"></span>
     <form method="get" action="/loginSuccess">
         :<input type="text" name="username" placeholder="      " required/><br><br>
        :<input type="text" name="password" placeholder="     " required/><br><br>
      <input type="submit" value="  ">
     </form>
     <br>
     <form method="get" action="/toRegister">
      <input type="submit" value="  ">
     </form>
    </div>
    </body>
    </html>
    
    regsister.html:등록 페이지
    
    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
     <meta charset="UTF-8">
     <title>register</title>
    </head>
    <body background="back.jpg" >
    <div align="center">
     <br><br><h1>    </h1><br><br>
     <form method="get" action="/toRegisterSuccess">
         :<input type="text" name="username" placeholder="      " required/><br><br>
        :<input type="text" name="password" placeholder="     " required/><br><br>
          :<input type="text" name="password2" placeholder="     " required/><br><br>
      <input type="submit" value="  ">
     </form>
    </div>
    </body>
    </html>
    
    성공 페이지
    성공 페이지
    3.테스트
    로그 인:
    在这里插入图片描述
    등록:
    在这里插入图片描述
    성공:
    在这里插入图片描述
    SpringBoot+Mybatis 로그 인 등록 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.SpringBoot+Mybatis 로그 인 등록 실현 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기