目錄
零、前言
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