java后端_Springboot项目连接mysql数据库

Springboot项目连接mysql数据库

在写一个前后端分离的项目,本篇文章介绍的是:
一个后段项目的搭建,连接数据库,以及一个简单接口的书写。

项目准备:

后端项目:

  1. java环境
  2. maven
  3. mysql数据库
  4. idea编译器

前端项目:

  1. node环境
  2. vscode编译器

案例

1. 新建一个springboot项目

java后端_Springboot项目连接mysql数据库_第1张图片

java后端_Springboot项目连接mysql数据库_第2张图片
java后端_Springboot项目连接mysql数据库_第3张图片
java后端_Springboot项目连接mysql数据库_第4张图片

2. 添加依赖

我们项目里面需要的依赖一共有三个

  1. Mysql
  2. JDBC
  3. mybatis-plus
  • 添加依赖
    找到项目最外层目录下的pom.xml文件。
    这个文件专门是maven用来管理jar包依赖的文件.
    我们项目中所用到的依赖,在这里都要注册一下项目中才能使用。

    以下 pom.xml 重点是·连接数据库配置·部分

<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>

java后端_Springboot项目连接mysql数据库_第5张图片

3. 配置数据库

数据库的依赖已经下载之后,我们就需要配置一下Mysql连接,用于告诉后端,我们以什么方式,路径,账号来访问Mysql数据库

  1. 我的数据库的结构
    java后端_Springboot项目连接mysql数据库_第6张图片

  2. 打开application.yml

  3. application.yml添加代码
    注意:.yml文件中的代码不可以错位,不然配置无效,或者直接报错

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/tuadmin
    username: root
    password: your password

4. 添加实体类adminUser

MyBatis Plus的注解
@TableId用于主键上的注解,
@TableField可以指定字段的一些属性

  1. 我的目录结构:java后端_Springboot项目连接mysql数据库_第7张图片
  2. adminUser中的内容

@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 ;
}

5. Mapper

Mybatis-Plus中我们可能用到一个比较多的类是BaseMapper接口,其最终也是利用的Mybatis接口编程的实现机制,其默认提供了一系列的增删改查的基础方法,并且开发人员对于这些基础操作不需要写SQL进行处理操作

  1. 我的目录结构
    java后端_Springboot项目连接mysql数据库_第8张图片
  2. Mapper中的内容
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> {
}

测试

  1. 目录
    java后端_Springboot项目连接mysql数据库_第9张图片
  2. 测试方法中的内容
    @Autowired() , 不加require=false就表示默认自动注入时bean必须存在,否则注入失败,会报错—“无法自动装配。找不到 ‘adminuserMapper’ 类型的 Bean。”
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());
        }
    }
}
  1. 运行测试方法
    • 首先确认pom.xml文件中没有以下配置【跳过test】
      true
      我之前因为一些原因在里面添加了这行代码,跳过了test代码,导致我在第一次运行test文件的时候,找不到test文件。第一次运行注释掉以后就可以了,后来运行我再加上,test又可以正常运行,暂时还不知道为什么。
      java后端_Springboot项目连接mysql数据库_第10张图片
    • 结果
      java后端_Springboot项目连接mysql数据库_第11张图片
      结果显示:
      连接Mysql成功啦!!

写一个接口【选择看,前后端分离】

我们在测试方法中已经成功连接并且查到了特定表中的数据,在业务中,后台要负责查询数据库中的表,之后将数据返回给前端页面。我这里就写一个简单的控制类,,之后前端戳后端的接口

  1. 后端:
    java后端_Springboot项目连接mysql数据库_第12张图片
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!" ;
    }
}

点进后端程序入口:
java后端_Springboot项目连接mysql数据库_第13张图片

没有报错,运行成功,控制台会打印出来一大堆:

java后端_Springboot项目连接mysql数据库_第14张图片


  1. 前端就是正常访问接口:
<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

界面展示:
java后端_Springboot项目连接mysql数据库_第15张图片
点击按钮,后端控制台会显示:
java后端_Springboot项目连接mysql数据库_第16张图片

真正的业务中,我们可以将这些管理者用户以一个集合的形式传递给前端。

浏览器F12检查network:我们可以看到hello接口返回的状态码为200

表示接口请求成功

点开接口查看响应内容,也成功显示return的内容

java后端_Springboot项目连接mysql数据库_第17张图片
java后端_Springboot项目连接mysql数据库_第18张图片
以上就是一个简单的接口,管理者用户集合对象传递现在还没有完成,但是意思就是这么样子。

大家加油(•̀ᴗ•́)و

你可能感兴趣的:(后端_SpringBoot,spring,boot,数据库,mysql)