使用IDEA搭建SpringBoot框架整合Mybatis、MySQL、Thymeleaf實現用戶查詢、註冊、登錄(含源碼)

目錄

零、前言

一、 說明

1、環境版本

2、數據庫準備

 二、搭建整合環境

1、IDEA 快捷創建 SpringBoot 工程

2、修改配置文件

3、創建類和接口文件

 4、創建 web 頁面

三、測試

四、源碼


零、前言

SpringBoot 框架整合相對於ssm框架整合SSM框架實現用戶查詢、註冊、登錄——IDEA整合Spring、Spring MVC、Mybatis 框架來說,要方便容易的多,SpringBoot 開發只需要非常少的幾個配置,開箱即用,沒有代碼生成,無需配置xml文件,還可以修改默認值來滿足特定的需求,並可以利用 IDEA 自動生成項目,搭建了 ssm 框架之後再來搭建整合 SpringBoot 框架,簡直不要太方便。

一、 說明

1、環境版本

  • JDK :JDK 8
  • IDEA :IntelliJ IDEA 2018.2.4 x64
  • Maven :apache-maven-3.5.2
  • SpringBoot :SpringBoot2.2.2
  • MySQL :MySQL Server 5.7

2、數據庫準備

CREATE DATABASE springbootdemodat;

USE springbootdemodat;

CREATE TABLE users(
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'id主鍵', 
    username VARCHAR(20) NOT NULL COMMENT '用戶名',
    PASSWORD  VARCHAR(20) NOT NULL COMMENT'用戶密碼'
);

INSERT INTO users (username,PASSWORD) VALUES("onestar","123");
INSERT INTO users (username,PASSWORD) VALUES("twostar","456");

 二、搭建整合環境

1、IDEA 快捷創建 SpringBoot 工程

【1】點擊:文件--->模塊,選擇 Spring Initializr,直接點擊下一個

【2】填寫相關選項,點擊下一個

【3】選擇 SpringBoot 需要的啓動依賴,這裏選擇 Web 下的 Spring Web、Template Engine 下的 Thymeleaf、SQL 下的 JDBC API、MyBatis Framework、MySQL Driver,然後點擊下一個

【4】保存項目路徑,點擊完成

創建好後目錄結構如下:

2、修改配置文件

SpringBoot 中使用的是 properties 配置文件和 yml 配置文件,而 yml 配置文件比 properties 配置文件更方便簡潔,使用起來更明瞭,這裏推薦使用 yml 配置文件,將工程中生成的 application.properties 改爲 application.yml,並進行如下配置:

spring:
# 配置mysql數據庫,springbootdemodat爲我的數據庫名稱
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/springbootdemodat?useUnicode=true&characterEncoding=UTF-8&serverTimezone=CST
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

# 配置thymeleaf,這裏在templates文件夾下放html文件
  thymeleaf:
    prefix: classpath:/templates/
    check-template-location: true
    suffix: .html
    mode: HTML
    encoding: UTF-8
    cache: false

# spring集成Mybatis環境
# 加載Mybatis映射文件
mybatis:
  mapper-locations: classpath*:mapper/*.xml

配置好後發現 driver-class-name: com.mysql.cj.jdbc.Driver 報錯,這裏將 pom.xml 中 mysql 配置中的 <scope>runtime</scope> 去掉就可以了

3、創建類和接口文件

在java文件夾下創建類文件,所需的類文件有以下幾個:

  • 存放 javabean 的 domain 包下的用戶類:cn.star.domain.User
  • 數據訪問層 dao 包下的用戶 dao 接口:cn.star.dao.UserDao
  • 業務層 service 包下的 UserService 接口:cn.star.service.UserService
  • 業務層 mapper 包下的 service 實現類,繼承 service 接口:cn.star.mapper.UserServiceImpl
  • 控制層 controller 包下的用戶控制層 UserController 類:cn.star.controller.UserController

【1】創建存放 javabean 類文件:cn.star.domain.User

package cn.star.domain;
/**
 * 〈一句話功能簡述〉<br> 
 * 〈用戶數據Javabean類〉
 *
 * @author OneStar
 * @create 2019/12/17
 * @since 1.0.0
 */
public class User {
    private Integer id;
    private String username;
    private String PASSWORD;

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", PASSWORD='" + PASSWORD + '\'' +
                '}';
    }
}

【2】創建數據訪問層 UserDao 接口:cn.star.dao.UserDao

package cn.star.dao;
import cn.star.domain.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * 〈一句話功能簡述〉<br> 
 * 〈數據訪問層接口〉
 *
 * @author OneStar
 * @create 2019/12/17
 * @since 1.0.0
 */
public interface UserDao {
    //查詢所有用戶
    @Select("select * from users")
    List<User> getAllUser();

    //用戶註冊
    @Insert("INSERT INTO USERS (username,PASSWORD) VALUES(#{username},#{PASSWORD})")
    public void insertUser(User user);

    //用戶登錄
    @Select("select * from users where username=#{username} and PASSWORD=#{PASSWORD}")
    public User login(User user);
}

 

 【3】創建業務層 UserService 接口:cn.star.service.UserService

package cn.star.service;
import cn.star.domain.User;
import java.util.List;
/**
 * 〈一句話功能簡述〉<br> 
 * 〈業務層接口〉
 *
 * @author OneStar
 * @create 2019/12/17
 * @since 1.0.0
 */
public interface UserService {
    //查詢所有用戶
    List<User> getAllUser();

    //用戶註冊
    public void insertUser(User user);

    //用戶登錄
    public boolean login(User user);
}

【4】創建 Service 實現類:cn.star.mapper.UserServiceImpl

package cn.star.mapper;
import cn.star.dao.UserDao;
import cn.star.domain.User;
import cn.star.service.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * 〈一句話功能簡述〉<br> 
 * 〈Service實現類〉
 *
 * @author OneStar
 * @create 2019/12/17
 * @since 1.0.0
 */
@Service
public class UserServiceImpl implements UserService {

    @Resource
    UserDao userDao;

    @Override
    public List<User> getAllUser() {
        System.out.println("業務層:查詢用戶");
        return userDao.getAllUser();
    }

    @Override
    public void insertUser(User user){
        System.out.println("業務層:註冊用戶");
        userDao.insertUser(user);
    }

    @Override
    public boolean login(User user) {
        System.out.println("業務層:用戶登錄");
        if(userDao.login(user) == null){
            System.out.println("false");
            return false;
        }else{
            System.out.println("true");
            return true;
        }
    }
}

 【5】創建用戶控制層UserController類:cn.star.controller.UserController

package cn.star.controller;
import cn.star.domain.User;
import cn.star.service.UserService;
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 java.util.List;
/**
 * 〈一句話功能簡述〉<br> 
 * 〈用戶控制層〉
 *
 * @author OneStar
 * @create 2019/12/17
 * @since 1.0.0
 */
@Controller
public class UserController {
    @Autowired
    UserService userService;

    @RequestMapping("/findUser")
    public String findUser(Model model){
        System.out.println("表現層:查詢用戶");
        List<User> list = userService.getAllUser();
        model.addAttribute("list",list);
        System.out.println(list);
        return "index";
    }

    @RequestMapping("/insert")
    public String insert(User user){
        System.out.println("表現層:註冊用戶");
        userService.insertUser(user);
        return "success";
    }

    @RequestMapping("/login")
    public String login(User user) {
        System.out.println("表現層:用戶登錄");
        // 調用注入的 usersService 調用 login 方法
        if(userService.login(user)){
            return "successlogin";
        }else{
            return "falselogin";
        }
    }
}

【6】添加 MapperScan 註解

修改 SpringbootdemoApplication ,在類前添加 MapperScan 註解,修改後如下:

package cn.star;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan({"cn.star.dao"})
public class SpringbootdemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootdemoApplication.class, args);
    }
    
}

 4、創建 web 頁面

在 resources 文件夾下創建需要的 web 頁面,這裏需要創建以下頁面:

  • 顯示查詢、註冊、登錄的 index 頁面:index.html
  • 註冊成功提示頁面:success.html
  • 登錄成功提示頁面:successlogin.html
  • 登錄失敗提示頁面:falselogin.html

【1】index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<H3>查詢測試:</H3>
<h7 th:text="${list}"></h7><HR>
<H3>註冊測試:</H3>
<form method="post" action="/insert">
    用戶:<input type="text" name="username"><br>
    密碼:<input type="text" name="PASSWORD"><br>
    <input type="submit" value="註冊"><hr>
</form>
<H3>登錄測試:</H3>
<form method="post" action="/login">
    用戶:<input type="text" name="username"><br>
    密碼:<input type="text" name="PASSWORD"><br>
    <input type="submit" value="登錄"><hr>
</form>
</body>
</html>

【2】 success.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>註冊成功!</h3>
</body>
</html>

【3】 successlogin.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>登錄成功!</h3>
</body>
</html>

【4】 falselogin.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>登錄失敗!</h3>
</body>
</html>

三、測試

啓動 SpringBoot 工程,在瀏覽器輸入:http://localhost:8080/findUser ,可以看到網頁顯示查詢用戶內容和註冊登錄入口,輸入用戶和密碼可以進行註冊登錄

至此,使用IDEA搭建SpringBoot框架整合Mybatis、MySQL、Thymeleaf實現用戶查詢、註冊、登錄完成,最終整個目錄結構如下:

四、源碼

源碼地址:

 鏈接:https://pan.baidu.com/s/1lTw00W4i8-NA6IpSyN2mAA   提取碼:2iu9 
 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章