从0开始教你,如何进行前后端的数据库(MySQL)连接

article/2025/6/19 4:50:29

引言

很多小伙伴会好奇,如何从零开始实现一个完整的前后端项目,并将数据存储在 MySQL 数据库中,然后我们可以进行实时的更新,查询,修改,增加删除。

比如一个简单的留言板系统,用户可以通过前端提交留言,后端将数据存储到 MySQL 中,再通过 API(如axios) 将数据展示在前端页面上。又或者一个视频留言系统,允许用户上传视频和评论,这些功能都需要前后端与数据库的协作。本篇博客将通过具体的例子,从基础出发,带你一步步完成从数据库搭建到前后端数据交互的全过程。

无论你是初学者还是有一定基础的开发者,这篇文章都能帮助你掌握前后端与数据库连接的核心技能。


一、环境准备(具体的各环境安装细节会在下节单拎出来讲解)

在开始之前,需要确保以下环境已经准备就绪:

  1. 安装 MySQL

    • 前往 MySQL 官方网站 下载并安装 MySQL。
    • 在安装过程中,设置一个安全的 root 用户密码,并选择开发者默认配置。
    • 安装完成后,启动 MySQL 服务,使用命令行或图形界面工具(如 MySQL Workbench,博主用的是Navicat界面化工具)连接数据库。
  2. 安装 Node.js

    • 前往 Node.js 官方网站 下载并安装 LTS 版本。

    • 安装完成后,在终端输入以下命令,确认安装成功:

      node -v
      npm -v
      
  3. 安装 Vue 开发环境

    • 使用 Vue CLI 快速搭建项目。首先,安装 Vue CLI:

      npm install -g @vue/cli
      
    • 创建一个 Vue 项目:

      vue create frontend
      

      根据提示选择默认配置。

  4. 测试工具

    • 推荐使用 Postman 或 curl 测试后端 API,方便调试接口。(可略)

二、创建数据库和表

  1. 登录 MySQL 打开终端,输入以下命令登录 MySQL:

    mysql -u root -p
    

    输入密码后进入 MySQL。当然,对于大部分伙伴来说肯定是用界面化操作最好(如navicat)

  2. 创建数据库 创建一个名为 example_db(任意)的数据库:

    CREATE DATABASE example_db;
    
  3. 使用数据库 切换到刚刚创建的数据库:

    USE example_db;
    
  4. 创建数据表 创建一个 messages 表,用于存储留言信息:

    CREATE TABLE messages (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL,content TEXT NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    
  5. 插入测试数据

    INSERT INTO messages (username, content) VALUES ('Alice', 'Hello, this is my first message!');
    INSERT INTO messages (username, content) VALUES ('Bob', 'This platform is great!');
    

三、后端连接 MySQL

我们将使用 Node.js 和 mysql2 库连接 MySQL。

  1. 初始化项目 创建一个新的后端目录,并初始化项目:

    mkdir backend && cd backend
    npm init -y
    
  2. 安装依赖

    npm install express mysql2 cors
    
  3. 创建后端代码 新建 server.js 文件,写入以下代码:

    const express = require('express');
    const mysql = require('mysql2');
    const cors = require('cors');const app = express();
    const port = 3000;app.use(cors());
    app.use(express.json());// 创建数据库连接
    const db = mysql.createConnection({host: 'localhost',user: 'root',password: 'yourpassword',database: 'example_db'
    });// 测试数据库连接
    db.connect(err => {if (err) {console.error('数据库连接失败:', err);} else {console.log('成功连接到数据库');}
    });// 获取所有留言
    app.get('/messages', (req, res) => {db.query('SELECT * FROM messages', (err, results) => {if (err) {res.status(500).send(err);} else {res.json(results);}});
    });// 添加新留言
    app.post('/messages', (req, res) => {const { username, content } = req.body;db.query('INSERT INTO messages (username, content) VALUES (?, ?)', [username, content], (err, results) => {if (err) {res.status(500).send(err);} else {res.json({ id: results.insertId, username, content });}});
    });// 启动服务器
    app.listen(port, () => {console.log(`服务器运行在 http://localhost:${port}`);
    });
    
  4. 启动后端服务器

    node server.js
    

    访问 http://localhost:3000/messages,可以看到数据库中的留言。


四、前端连接后端

我们使用 Vue 实现前端部分。(这里是已经创建过了vue项目文件的,项目文件名为frontend)

  1. 创建组件frontend/src/components 目录下创建 MessageBoard.vue 文件,写入以下代码:

    <template><div><h1>留言板</h1><ul><li v-for="message in messages" :key="message.id"><strong>{{ message.username }}</strong>: {{ message.content }}</li></ul><form @submit.prevent="addMessage"><input v-model="username" placeholder="用户名" required /><textarea v-model="content" placeholder="留言内容" required></textarea><button type="submit">提交</button></form></div>
    </template><script>
    import axios from 'axios';export default {data() {return {messages: [],username: '',content: ''};},created() {this.fetchMessages();},methods: {async fetchMessages() {try {const response = await axios.get('http://localhost:3000/messages');this.messages = response.data;} catch (error) {console.error('Error fetching messages:', error);}},async addMessage() {try {const newMessage = { username: this.username, content: this.content };await axios.post('http://localhost:3000/messages', newMessage);this.messages.push(newMessage);this.username = '';this.content = '';} catch (error) {console.error('Error adding message:', error);}}}
    };
    </script>
    
  2. 集成组件 在src/App.vue 中引入该组件:

    <template><MessageBoard />
    </template><script>
    import MessageBoard from './components/MessageBoard.vue';export default {components: {MessageBoard}
    };
    </script>
    
  3. 运行项目frontend 目录下启动项目:

    npm run serve
    

    在浏览器中访问 http://localhost:8080,可以看到留言板功能。


五、总结

通过上述步骤,我们实现了一个简单的留言板系统,涵盖了以下内容:

  1. 使用 MySQL 创建数据库和数据表

    • 首先,创建一个 MySQL 数据库,用于存储留言信息。
    • 在数据库中创建一个表,定义留言的字段,如留言内容、用户信息、留言时间等。
  2. 使用 Node.js 开发后端接口并连接数据库

    • 使用 Node.js 和 Express 框架开发后端 API。
    • 安装并配置 MySQL 驱动(如 mysql2sequelize)来连接数据库。
    • 创建相关的 API 接口,例如 GET 用于获取留言列表,POST 用于添加留言等。
    • 后端与数据库交互,处理数据的增删改查(CRUD)操作。
  3. 使用 Vue 开发前端页面,与后端进行交互

    • 使用 Vue.js 创建前端页面,展示留言列表,并提供用户输入留言的表单。
    • 使用 axiosfetch 等工具来发送 HTTP 请求与后端接口交互。
    • 将用户的留言显示在前端页面上,并实时更新。

通过这样的实现,用户可以在前端输入留言,后端接收并存储到 MySQL 数据库中,留言列表也会在页面上实时显示更新。这是一个简单的 CRUD 应用,适合入门学习 Web 开发、数据库管理和前后端交互。


http://www.hkcw.cn/article/BYrTvgXCmH.shtml

相关文章

【金仓数据库征文】政府项目数据库迁移:从MySQL 5.7到KingbaseES的蜕变之路

摘要&#xff1a;本文详细阐述了政府项目中将 MySQL 5.7 数据库迁移至 KingbaseES 的全过程&#xff0c;涵盖迁移前的环境评估、数据梳理和工具准备&#xff0c;迁移实战中的数据源与目标库连接配置、迁移任务详细设定、执行迁移与过程监控&#xff0c;以及迁移后的质量验证、系…

从0到1:用Lask/Django框架搭建个人博客系统(4/10)

摘要&#xff1a;本文深入解析了使用Lask和Django构建个人博客系统的全过程。从技术选型的考量&#xff0c;突出Lask的轻量灵活与Django的强大功能&#xff0c;到开发环境搭建、项目初始化&#xff0c;再到核心功能实现如文章管理、用户认证与权限控制&#xff0c;详细阐述了开…

【金仓数据库征文】-- 金仓数据库:技术实践天花板级深度解析,手把手教你玩转企业级应用

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

【金仓数据库征文】MySQL 与 KingbaseES 的华丽转身:揭秘迁移路上的最佳实践秘籍

目录 1 -> 概述 1.1 -> MySQL兼容特性 1.2 -> 数据类型 2 -> 主要移植内容 2.1 -> 数据库、用户移植 2.2 -> MySQL数据迁移 2.3 -> 应用程序移植 3 -> 关键移植步骤 4 -> MySQL数据库移植实战 4.1 -> 迁移前准备 4.1.1 -> 配置 Ki…

【金仓数据库征文】金仓数据库KingbaseES: 技术优势与实践指南(包含安装)

目录 前言 引言 一 : 关于KingbaseES,他有那些优势呢? 核心特性 典型应用场景 政务信息化 金融核心系统&#xff1a; 能源通信行业&#xff1a; 企业级信息系统&#xff1a; 二: 下载安装KingbaseES 三:目录一览表: 四:常用SQL语句 创建表&#xff1a; 修改表结构…

【金仓数据库征文】- 深耕国产数据库优化,筑牢用户体验新高度

目录 引言 一、性能优化&#xff1a;突破数据处理极限&#xff0c;提升运行效率 1.1 智能查询优化器&#xff1a;精准优化数据检索路径 1.2 并行处理技术&#xff1a;充分释放多核计算潜力 1.3 智能缓存机制&#xff1a;加速数据访问速度 二、稳定性提升&#xff1a;筑牢…

Java实现数据库图片上传(包含从数据库拿图片传递前端渲染)-图文详解

目录 1、前言&#xff1a; 2、数据库搭建 &#xff1a; 建表语句&#xff1a; 3、后端实现&#xff0c;将图片存储进数据库&#xff1a; 思想&#xff1a; 找到图片位置&#xff08;如下图操作&#xff09; 图片转为Fileinputstream流的工具类&#xff08;可直接copy&#…

乌方披露对俄特种作战行动细节 41架俄军战机被击中

当地时间6月2日,乌克兰国家安全局局长瓦西里马柳克宣布,乌克兰国家安全局在代号为“蛛网”的特别行动中袭击了俄罗斯后方部署战机的四个军用机场。此次行动导致41架俄军战机被击中,其中包括A-50、图-95、图-22M3和图-160战机。他表示,这次行动摧毁了俄罗斯34%的战略巡航导弹…

日本人在华被杀害 日本政府发声 商业纠纷引发

6月3日,大连公安发布公告称,5月23日在辽宁大连发生一起因商业纠纷引发的命案,两名日本籍男子被一名中国籍男子杀害。日本政府相关人士表示,此案属于个案,不存在“反日”等背景因素。大连警方在警情通报中提到,5月23日接到报警,在普兰店区大刘家街道辖内发生一起致两人死…

免签名单不断变长彰显中国对外开放决心 持续优化入境政策

6月3日,外交部发言人林剑主持例行记者会。有记者提问关于中方近期推出的签证便利政策,包括面向东南亚国家的东盟签证便利政策以及从6月1日起对巴西、阿根廷、秘鲁、乌拉圭等五个拉美国家持普通护照人员试行免签政策。此外,中国还宣布实现对海合会国家免签全覆盖,这一系列措…

全国多地上调最低工资标准 覆盖数千万劳动者

2025年上半年,全国多地密集上调最低工资标准,成为民生领域的一大亮点。截至5月29日,已有重庆、四川、山西、广东等8个省份正式实施新标准,覆盖数千万劳动者。最低工资标准通常分为月最低工资标准和小时最低工资标准两种形式,前者适用于全日制就业劳动者,后者适用于非全日…

日本政府回应2名日本人被杀害 排除反日背景

大连公安于6月3日发布公告称,5月23日,因商业纠纷引发矛盾,两名日本籍男子在辽宁大连被一名中国籍男子杀害。日本政府相关人士表示,该案属于个案,不存在“反日”等背景因素。大连警方通报显示,5月23日,在普兰店区大刘家街道辖内发生一起致2人死亡的刑事案件。次日,犯罪嫌…

胡歌新身份正式官宣 担任上海市禁毒宣传大使

胡歌宣布了新身份。他不仅是镜头前演绎百态人生的演员,也是镜头后用清醒守护生命本色的禁毒宣传大使。在禁毒宣传公益片《面对毒品,请坚决说不!》中,中共上海市委政法委常务副书记、市禁毒委副主任张磊为胡歌颁发了上海市禁毒宣传大使聘书。毒品是人生剧本中最危险的“NG镜…

深度探索AI | 智算云平台与DeepSeek 的多元联动应用与模型微调全解析

文章目录 前言一、DeepSeek满血版使用2.1 关于蓝耘2.2 注册与登录2.3 使用DeepSeek 二、DeepSeek 基础概念回顾2.1 DeepSeek 模型架构概述2.2 DeepSeek 的预训练优势 三、DeepSeek 在自然语言处理领域的联动应用3.1 智能客服系统集成3.1.1 应用场景与优势3.1.2 实现流程与代码示…

本地部署vanna ai+通过http请求调用vanna

本地部署vanna ai ① 准备python环境&#xff0c;推荐最新的python12、13版本 ② 安装vanna库 我这里安装的python环境是python312 进入目录python312/Scripts&#xff0c;在该目录下的命令行窗口中输入以下命令&#xff1a;pip jinstall vanna pip install vanna③ 配置向…

和 AI 玩海龟汤差点崩溃:它永远比我多知道 100 个隐藏真相

关于海龟汤 第一次接触海龟汤时&#xff0c;我还以为这是某种美食烹饪挑战&#xff0c;直到朋友抛出第一个谜题 ——“一个人走进酒吧&#xff0c;要了一杯水&#xff0c;酒保却掏出一把枪对准他&#xff0c;可这个人不仅没害怕&#xff0c;反而说了声谢谢离开了”&#xff0c…

个人健康中枢的多元化AI软件革新与精准健康路径探析

引言 人工智能技术的迅猛发展正在重塑医疗健康领域的服务模式和用户体验。随着多模态大模型、MCP协议、A2A协议和思考链算法等创新技术的出现,个人健康中枢正在经历一场深刻的软件革新。这些技术不仅打破了传统健康管理系统的信息孤岛,还通过多维度数据整合和深度推理能力,…

探索高性能AI识别和边缘计算 | NVIDIA Jetson Orin Nano 8GB 开发套件的全面测评

随着边缘计算和人工智能技术的迅速发展&#xff0c;性能强大的嵌入式AI开发板成为开发者和企业关注的焦点。NVIDIA近期推出的Jetson Orin Nano 8GB开发套件&#xff0c;凭借其40 TOPS算力、高效的Ampere架构GPU以及出色的边缘AI能力&#xff0c;引起了广泛关注。本文将从配置性…

利用本地DeepSeek R1和n8n框架,创建AI智能体

如今&#xff0c;AI 越来越智能。在本地部署个人 AI 智能体&#xff0c;是一件意义重大的事&#xff1a;无需云服务和 API&#xff0c;就能完全自主掌控私人 AI&#xff0c;保障数据安全和隐私&#xff0c;还能个性化定制。 借助n8n、Ollama和DeepSeek-R1这三款超实用工具&…

【AI打标签】基于DeepSeek Janus为图片批量打标签

DeepSeek Janus的能力&#xff0c;相信不需要我多说了&#xff0c;看下面三张图片&#xff0c;自然就知道了。 但是&#xff0c;如何通过DeepSeek Janus提高我们的工作生产力&#xff0c;在这里&#xff0c;我给大家说道说道。 ★★★★★ 建议一定看到最后&#xff0c;至于为…