springboot小实操(登陆功能实现)

springboot小实操(登陆功能实现)

  • 新建数据库和表
  • 新建springboot项目
  • application.yml
  • 实体类admin
  • 建持久层接口与映射文件
  • 服务层
  • 登录页面
  • 新建控制层
  • 测试
  • 心得

新建数据库和表

这里我使用mysql数据库

//建立数据库
DROP DATABASE IF EXISTS landers;
CREATE DATABASE landers DEFAULT CHARACTER SET utf8;
//建立表
use landers;
CREATE TABLE admin(
	id INT NOT NULL COMMENT 'id',
	Sname VARCHAR (20) NOT NULL COMMENT '用户名',
	Spassword VARCHAR (100) NOT NULL COMMENT '密码',
	PRIMARY KEY (id)
);
//插入数据
INSERT INTO admin VALUES
(1 , '唐小僧', '18302008888'),
(2 , '猪八戒', '13566668888'),
(3 , '沙亮亮', '15677770600'),
(4 , '孙空空', '13533998888');

新建springboot项目

新建过程自己百度,选择组件时选择Web->spring Web、Templates Engines->Thymeleaf、SQL->JDBC API、Mybatis Framework、Mysql Driver

springboot小实操(登陆功能实现)_第1张图片
com.example.demo:主类包
Config:存放配置类(暂时不提)
controller:存放控制类
dao:存放数据库接口类,定义数据库接口,跟mapper.xml映射文件绑定
entity:存放实体类
service:存放服务层接口
service.impl:存放服务层接口实现类
mapping:存放数据库映射文件
static:存放静态文件
templates:存放html页面

application.yml

#项目端口号
server:
  port: 10030
  
#配置数据库
spring:
  datasource:
    username: root
    password: ******
    url: jdbc:mysql://localhost:3306/landers?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=GMT
    driver-class-name: com.mysql.cj.jdbc.Driver
  thymeleaf:
    cache: false

#配置mybatis映射文件的位置
mybatis:
  mapper-locations: classpath:mapping/*Mapper.xml
  • Server.port配置了项目的端口号
  • spring.datasource是配置数据库的数据源
  • spring.thymeleaf.cache是让thymeleaf不缓存,便于测试和修改
  • mybatis.mapper-location是配置mybatis映射文件的位置,其中classpath是指resource目录,即此地址是指resource下面的mapping文件夹内的所有以Mapper结尾的xml文件
  • com.mysql.cj.jdbc.Driver注意这个是mysql8.0的驱动,mysql5.7及以下的驱动是com.mysql.jdbc.Driver

实体类admin

在entity包下新建一个admin.java类

//管理员实体类
public class admin {
    private String sname;
    private String spassword;

    @Override
    public String toString() {
        return "admin{" +
                "sname='" + sname + '\'' +
                ", spassword='" + spassword + '\'' +
                '}';
    }

    public String getSname() {
        return sname;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSpassword() {
        return spassword;
    }
    public void setSpassword(String spassword) {
        this.spassword = spassword;
    }
}

建持久层接口与映射文件

在dao包下新建一个adminDao.java(注意这个是接口interface)

//持久层接口
import com.example.demo.entity.admin;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface adminDao {
//    使用配置文件的方法查找所有学生
    admin getAdmin(@Param("Sname") String Sname, @Param("Spassword") String Spassword);
}

注意在类上面加一个@Mapper注解
接下来在resource目录下新建一个mapping目录,再新建管理员的Mapper映射文件UserMapper.xml



<mapper namespace="com.example.demo.dao.adminDao">
    <select id="getAdmin" resultType="com.example.demo.entity.admin">
        SELECT * FROM admin WHERE Sname = #{Sname} AND Spassword = #{Spassword}
    select>
mapper>

标签中的namespace是这个管理员持久层接口的全类名com.example.dao.adminDao ,它就会找到刚刚我们定义的那个管理员持久层接口adminDao.java。在