<返回更多

SpringBoot+Mysql做登陆接口,抛弃mapper.xml

2021-03-08  今日头条  程序员新资讯
加入收藏

1.创建Springboot项目

开发工具我们采用IntelliJ IDEA,环境安装不在叙述,如果对环境搭建不会的朋友,可以评论或私聊,本人后期在写一章环境搭建,MySQL安装的文章:

  1. 打开IntelliJ IDEA , new Project 或 File -> New -> Project... ;
  2. 选择 Spring initializr ,选择对应的Project SDK后 点击Next ,如果Project SDK没有可选项,请先安装sdk,
  3.  

如上图所示 Group 修改为自己的报名,推荐为域名+项目名,比如** www.td0f7.cn.springboot01* * Artifact 为自己的项目名称,英文可以下划线比如spring_boot_demo type 为包管理方式,如果不了解这两种推荐用默认的方式即可,不用修改 Lauguage 为开发语言,默认为JAVA,可自行修改 Packaging 为打包方式,本人习惯用war所以选择war方式 Java Version 为开发语言的版本号,我本地java版本号是8,所以选择8

SpringBoot+Mysql做登陆接口,抛弃mapper.xml

 

改动完成,点击 Next 出现第二个界面,在点击下一步

  1.  

Project Name是项目名称,修改成自己的即可,默认是上个界面带过来的,不用修改 Project location 为项目存储路径修改为自己的存储路径即可 点击Firish,等待加载完成

2.项目结构介绍

SpringBoot+Mysql做登陆接口,抛弃mapper.xml

 

如图所示 根目录下 pom.xml 是包管理,引入一些新的jar包都在这,修改springboot版本号,修改打包方式等等 src main java 是写代码的地方 SpringBootDemoApplication 是程序主入口 resources 存储一些资源 application.properties 是配置文件,配置端口号,mysql,redis等等都在这里 static 是静态资源,js css 图片等 templates 放html界面

其他等教程用到在详细解释

3.引入mysql等包

由于新项目没有引入任何包,所以要引入数据库的包。 首先打开项目根目录的 pom.xml 在内容 dependencies 节点下添加

<dependencies>
    	<!--新添加的-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>
				

		<!--项目自带的-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-Tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
复制代码

lombok为实体类工具包,可以自动添加get set方法 mysql 是链接mysql数据库必须添加的包 org.mybatis.spring.boot 是mysql数据库的封装框架,更简易的操作数据库 gson 是对象转json字符串的工具类

4.修改数据库配置文件

打开项目根目录 src -> main -> resources -> application.properties 文件

spring.datasource.url=jdbc:mysql://mysqlip:端口/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
spring.datasource.username=数据库账号
spring.datasource.password=数据库密码
复制代码

spring.datasource.url=jdbc:mysql://127.0.0.1/springboot?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
spring.datasource.username=springboot
spring.datasource.password=wangzhong
复制代码

mysql默认端口是3306,如果没有修改过端口号,则spring.datasource.url=的端口号可以省略不写

5.创建mysql数据库user表

CREATE TABLE `springboot`.`user` ( `id` INT NOT NULL AUTO_INCREMENT , `user` VARCHAR(30) NOT NULL , `pass` VARCHAR(30) NOT NULL , PRIMARY KEY (`id`), UNIQUE `u_user` (`user`) ENGINE = MEMORY;
复制代码

在mysql数据库执行这段mysql语句添加user表 id 主键自增 user 登录账号,不重复 pass 登陆密码

环境到这里就算完成了,接下来要写代码了

6.编写代码实现登陆接口

首先在 src main java 你的包 下 SpringBootDemoApplication 同级目录下创建 mapper controller entity 三个包 mapper 存储操作数据库的代码 controller 存储api的代码,前台调用的api都是这个下的 entity 存储数据库对应的实体类

首先是entity包下创建User实体类文件

import lombok.Data;

//@Data 注释会为我们自动给该实体类的属性添加 get set方法,必须引用了lombok包才可以使用
@Data
public class User {
    private int id;
    private String user;
    private String pass;
}

复制代码

创建UserMapper,名称一般为数据库表名+Mapper,类型为interface

import org.Apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import www.td0f7.cn.springboot01.spring_boot_demo.entity.User;

//必须有这个注解,否则无法扫描到该mapper
@Mapper
public interface UserMapper {
    /**
     * @Select 代表查询语句
     * #{user} 代表 取该方法中 user参数
     * @返回值 登陆是查询,由于user登陆账号是唯一的,所有返回类型是一个User对象而不是集合
     */
    @Select("select * from user where user = #{user} and pass = #{pass}")
    User login(String user, String pass);
}

复制代码

创建UserController,给外部提供可调用的api

import com.google.gson.Gson;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import www.td0f7.cn.springboot01.spring_boot_demo.entity.User;
import www.td0f7.cn.springboot01.spring_boot_demo.mapper.UserMapper;

@RestController//如果返回值为对象,则自动转换成json
//@RequestMapping("user"),此注释代表这个controller需要+user才可以访问,如下
//我们启动的网站都是http://localhost:8080,要访问这个controller则是http://localhost:8080/user
@RequestMapping("user")
public class UserController {
    @Autowired(required = false)//自动扫描mapper文件
    private UserMapper mapper;

    /**
     * 该接口为post方式
     *
     * @param user 参数user默认值为空,不写defaultValue为null
     * @param pass
     * @return
     */
    @PostMapping("login")
    public String login(@RequestParam(value = "user", defaultValue = "") String user,
                        @RequestParam(value = "pass", defaultValue = "") String pass) {
        if (user.equals("")) return "账号必传";
        if (pass.equals("")) return "密码必传";
        User user1 = mapper.login(user, pass);
        if (user1 == null) {//没有查询到数据,代表没有此账号
            return "账号密码不正确!";
        } else {
            return new Gson().toJson(user1);//登陆成功则给对象转json字符串返回
        }
    }
}
复制代码

7.运行开始测试

数据库添加数据

INSERT INTO `user`(`user`, `pass`) VALUES ('wz', '123456')
复制代码

以上添加了账号 wz 密码 123456 的数据

接下来运行项目测试

SpringBoot+Mysql做登陆接口,抛弃mapper.xml

 

使用postman测试

SpringBoot+Mysql做登陆接口,抛弃mapper.xml

 


SpringBoot+Mysql做登陆接口,抛弃mapper.xml

 


SpringBoot+Mysql做登陆接口,抛弃mapper.xml

 


SpringBoot+Mysql做登陆接口,抛弃mapper.xml

 

ok,登陆功能完成!!! 注册功能后期发布

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>