在写一个前后端分离的项目,本篇文章介绍的是:
一个后段项目的搭建,连接数据库,以及一个简单接口的书写。
后端项目:
前端项目:
我们项目里面需要的依赖一共有三个
- Mysql
- JDBC
- mybatis-plus
pom.xml
文件。maven
用来管理jar包依赖的文件.
<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.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.7.5version>
<relativePath/>
parent>
<groupId>com.examplegroupId>
<artifactId>tuuuartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>tuuuname>
<description>tuuudescription>
<properties>
<java.version>1.8java.version>
<maven.test.skip>truemaven.test.skip>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>8.0.29version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-jdbcartifactId>
dependency>
<dependency>
<groupId>com.baomidougroupId>
<artifactId>mybatis-plus-boot-starterartifactId>
<version>3.5.1version>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
<version>1.16.22version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
数据库的依赖已经下载之后,我们就需要配置一下Mysql连接,用于告诉后端,我们以什么方式,路径,账号来访问Mysql数据库
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/tuadmin
username: root
password: your password
MyBatis Plus的注解
@TableId用于主键上的注解,
@TableField可以指定字段的一些属性
@TableName(“adminUser”) 这个实体类对应的数据库中的adminUser表
package com.example.tuuuclasses;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
//使用Lombok简化代码
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("adminUser")
public class adminUser {
/**@TableId用于主键上的注解,@TableField可以指定字段的一些属性**/
@TableId(value = "userid" , type= IdType.AUTO)
private int userid ;
@TableField("username") //变量与表中字段对应
private String username ;
@TableField("password")
private String password ;
}
Mybatis-Plus中我们可能用到一个比较多的类是BaseMapper接口,其最终也是利用的Mybatis接口编程的实现机制,其默认提供了一系列的增删改查的基础方法,并且开发人员对于这些基础操作不需要写SQL进行处理操作
package com.example.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.tuuuclasses.adminUser ;
import org.springframework.stereotype.Repository;
@Repository
public interface adminuserMapper extends BaseMapper<adminUser> {
}
package com.example.tuuu;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import com.example.Mapper.adminuserMapper ;
import com.example.tuuuclasses.adminUser ;
@SpringBootTest
class TuuuApplicationTests {
@Autowired(required = false)
//不加require=false就表示默认自动注入时bean必须存在,否则注入失败
private adminuserMapper adminuserMapper;
@Test
public void test(){
for(adminUser adminUser:adminuserMapper.selectList(null)){
System.out.println(adminUser.toString());
}
}
}
我们在测试方法中已经成功连接并且查到了特定表中的数据,在业务中,后台要负责查询数据库中的表,之后将数据返回给前端页面。我这里就写一个简单的控制类,,之后前端戳后端的接口
package com.example.tuuu.contorller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller ;
import org.springframework.web.bind.annotation.*;
import com.example.Mapper.adminuserMapper ;
import com.example.tuuuclasses.adminUser ;
@CrossOrigin //允许跨域访问
@Controller
public class helloWorld {
@Autowired(required = false)
private adminuserMapper adminuserMapper ;
// 使用集合完成数据库内部数据的传递
@RequestMapping(value = "/hello" , method = RequestMethod.GET)
@ResponseBody
public String helloWorld(){
for (adminUser adminUser:adminuserMapper.selectList(null)){
System.out.println(adminUser.toString());
//这个地方可以自己定义一些对数据的操作
} ;
return "hello world!" ;
}
}
没有报错,运行成功,控制台会打印出来一大堆:
<div>
<n-card title="测试'hello'接口【get接口】">
<n-button @click="testHello()">测试‘hello’接口n-button>
n-card>
div>
//触发方法
let testHello=()=>{
API({
url:'/hello' ,
method:'get' ,
}).then((res)=>{})
}
以上API方法是简单封装过的:
import axios from 'axios'
const API = axios.create({
baseURL:'http://localhost:8888' , //后端运行的基本地址
timeout:2000
})
export default API
真正的业务中,我们可以将这些管理者用户以一个集合的形式传递给前端。
浏览器F12检查–network:我们可以看到hello接口返回的状态码为200
表示接口请求成功
点开接口查看响应内容,也成功显示return的内容
以上就是一个简单的接口,管理者用户集合对象传递现在还没有完成,但是意思就是这么样子。
大家加油(•̀ᴗ•́)و