SpringBoot+Vue入门并实现前后端分离和数据库查询(入门笔记超详细)

这篇具有很好参考价值的文章主要介绍了SpringBoot+Vue入门并实现前后端分离和数据库查询(入门笔记超详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

初学SpringBoot,很多地方都不懂,所以完成这个走了不少弯路,连夜写blog记录,生怕天一亮全忘干净了……

前端:Vue(2 or 3),IDE是VS code

后端:Spring Boot,IDE是IDEA

数据库: MySQL

目前实现功能前后端代码分离,显示数据库表的数据


步骤

1.【创建vue项目】

终端输入

vue ui

打开图形化界面,创建一个Vue项目,具体步骤如下图:

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js 

耐心等待。。。

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js 

创建完成后可以编译运行,并确认项目是否能够成功跑起来 vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 关闭终端,进行下一步。

2.【编写vue代码】

vs code打开刚才创建的vue项目(vue开发相关插件要自行下载好哦)

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 如上图,在package.json中查看当前vue版本号,确定当前项目是vue2还是3!这个很重要!

接下来cmd+shift+Y打开终端,下载axios插件

如果你是vue3,就输入

npm install axios

如果是vue2,就输

vue add axios

注:踩过的坑,使用如果是vue3使用vue add axios安装,导致版本不一致,会出现这样子的bug:export 'default' (imported as 'Vue') was not found in 'vue' vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js


 我的项目是vue3,所以

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 执行完毕后,在view中新建 BookView.vue视图,这个的代码先不急。

router中配置一个新的路由,将index.js修改代码为:

import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
import Book from '../views/BookView.vue'

const routes = [
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  },
  {
    path:'/book',
    component:Book
  }
]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

(注:上面这些代码不管是vue2,还是和我一样是vue3,都可以用)

3.【创建数据库】

数据库名sbdb,表名book。

CREATE TABLE `book` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) NOT NULL,
  `author` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

4.【创建springboot项目】

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js 下一步直接finish

沿着这个路径找到application.properties,把它删掉。

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 在同样的位置,新建一个file,名为application.yml,这里面是连接数据库的信息,以下代码需要修改改数据库名和密码哦 

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/sbdb?serverTimezone=UTC&characterEncoding=utf-8
    username: root
    password: 你的数据库密码
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
     show-sql: true
     properties:
       hibernate:
         format_sql: true
server:
  port: 8181

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js src->main->java->com.example.sbtest下新建package,名为entity,里面新建一个类,名为Book。注意,这歌Book不是任取的,Book映射到数据库中的book表(类名首字母小写就是对应的表名)

package com.example.sbtest.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
@Data
public class Book {
    @Id
    private Integer id;
    private String name;
    private String author;
}

 src->main->java->com.example.sbtest下新建package,名为repository,然后创建一个借口,名为BookRepositoryvue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

package com.example.sbtest.repository;
import com.example.sbtest.entity.Book;
import org.springframework.data.jpa.repository.JpaRepository;

public interface BookRepository extends JpaRepository<Book,Integer> {

}

进行单元测试,验证上面的类能否成功使用 

在接口上右键,如下图,选择Test

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 可以发现test文件夹里自动生成一个测试类

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

 我们修改代码,进行测试:

package com.example.sbtest.repository;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class BookRepositoryTest {

    @Autowired
    private BookRepository bookRepository;

    @Test
    void findAll(){
        System.out.println(bookRepository.findAll());
    }
}

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

第一次运行需要稍等片刻。。。

查看结果: vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js


测试repository没有问题后,我们就可以创建controller类,让vue可以调用到后端的数据!

 src->main->java->com.example.sbtest下新建package,名为controller,然后创建一个接口,名为BookHandler

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

package com.example.sbtest.controller;
import com.example.sbtest.entity.Book;
import com.example.sbtest.repository.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/book")
public class BookHandler {
    @Autowired
    private BookRepository bookRepository;
    @GetMapping("/findAll")
    public List<Book> findAll(){
        return bookRepository.findAll();
    }
}

src->main->java->com.example.sbtest下新建package,名为config,然后创建一个接口,名为CrosConfig,这一步是为了解决跨域问题,可以简单理解为前端的端口号访问到后端的端口号:

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

package com.example.sbtest.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CrosConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        /*
        TODO bug:   .allowedOrigins("*")改成 allowedOriginPatterns("*")
         */
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS")
                .allowCredentials(true)
                .maxAge(3600)
                .allowedHeaders("*");
    }
}

5.启动springboot项目

如图,稍等片刻,运行完成后,打开浏览器输入http://localhost:8181/book/findAll

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js

顺带复制一下这个地址哦,项目别关,然后进入下一步!

6.【回到vue】

view BookView.vue视图添加代码: 

把你上一步复制的地址替换以下代码axios.get()里的url,如果你和我的设置都是一样的,就可以省去这一步。

<template>
    <div>
        <table>
            <tr>
                <td>编号</td>
                <td>图书名称</td>
                <td>作者</td>
            </tr>
            <tr v-for="item in books">
                <td>{{item.id}}</td>
                <td>{{item.name}}</td>
                <td>{{item.author}}</td>
            </tr>
        </table>
    </div>
</template>

<script>

import axios from 'axios'
export default {
    name:"Book",
    data(){
        return {
            books:[]
        }
    },
    created(){
        const _this = this
        axios.get( 'http://localhost:8181/book/findAll').then(function(resp){
            ///console.log(resp.data)
            _this.books = resp.data         
        })
        
       
    }
    
}
</script>
<style scoped>

</style>

至此,代码部分彻底完工!最后,只要在vs code让项目跑起来,在

http://localhost:8080/book就可以显示后端的数据啦(注意IDEA也要保持项目运行哦)。

vue+springboot实现选择器查询从数据库获取,开发笔记,spring boot,后端,java,vue,vue.js文章来源地址https://www.toymoban.com/news/detail-861264.html

 肝不动了,有讲不清楚的地方欢迎在评论区指出,制作不易,欢迎点赞收藏哦(^_^)

到了这里,关于SpringBoot+Vue入门并实现前后端分离和数据库查询(入门笔记超详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (前后端分离)SpringBoot+Vue实现视频播放

    跳坑日志 SpringBoot+vue的项目中,实现前端播放视频 SpringBoot 定义GET请求ApI,返回视频流,前端通过 话不多说,走起 这里主要的是得到视频所在的物理地址 到了这一步基本可以通过访问后端url进行视频播放了 测试: http://localhost:8080/file/video 不出意外的话是可以播放的,如果

    2023年04月09日
    浏览(40)
  • 基于Springboot+Vue实现前后端分离酒店管理系统

    一、🚀选题背景介绍 📚 推荐理由 : 近几年来,随着各行各业计算机智能化管理的转型,以及人们经济实力的提升,人们对于酒店住宿的需求不断的提升,用户的增多导致酒店管理信息的不断增多,于是酒店管理系统开始受到相关行业的重视,酒店管理系统也显的越发的重

    2024年04月09日
    浏览(49)
  • 基于springboot + vue实现的前后端分离-酒店管理系统

    项目介绍         基于springboot + vue实现的酒店管理系统一共有酒店管理员和用户这两种角色。 管理员功能 登录:管理员可以通过登录功能进入系统,确保只有授权人员可以访问系统。 用户管理:管理员可以添加、编辑和删除酒店的用户,包括前台员工、服务员等。他们

    2024年02月22日
    浏览(41)
  • SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现

    系列文章: SpringBoot + Vue前后端分离项目实战 || 一:Vue前端设计 SpringBoot + Vue前后端分离项目实战 || 二:Spring Boot后端与数据库连接 SpringBoot + Vue前后端分离项目实战 || 三:Spring Boot后端与Vue前端连接 SpringBoot + Vue前后端分离项目实战 || 四:用户管理功能实现 SpringBoot + Vue前后

    2024年02月11日
    浏览(59)
  • 基于Java+SpringBoot+Vue前后端分离学生信息管理设计实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟  java项目

    2024年02月05日
    浏览(81)
  • 基于Java+SpringBoot+vue前后端分离学生网上请假系统设计实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月11日
    浏览(227)
  • 基于Java+SpringBoot+Vue前后端分离相亲网站系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 2022-2024年

    2024年02月11日
    浏览(65)
  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到哟 基于Jav

    2023年04月09日
    浏览(244)
  • 基于Java+SpringBoot+Vue前后端分离民谣网站设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年02月03日
    浏览(79)
  • 基于Java+SpringBoot+Vue前后端分离网上团购系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年01月22日
    浏览(251)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包