Springboot项目本地连接并操作MySQL数据库

目录

前提

准备工作

用cmd在本地创建数据库、表:

1.创建springboot项目(已有可跳过)

2.编辑Mybatis配置

3.连接数据库

4.创建模型类,用于与数据库里的数据表相连

5.创建接口mapper,定义对数据库的操作

6.创建controller类,来处理前端发送的请求

7.创建xml配置文件,编写SQL映射语句

前提

1.已有springboot项目,安装有jdk(17版本以上)、MySQL

2.下载navicat软件用于编辑数据库(也可以是其他类似软件)

3.下载apifox软件用于创建接口并测试连接(按需求选择)

准备工作

用cmd在本地创建数据库、表:

  1. 登录到MySQL:mysql -u 用户名 -p
  2. 使用CREATE DATABASE语句来创建一个新的数据库,例如,要创建一个名为my_database的数据库:CREATE DATABASE my_database
  3. 在创建表之前,你需要先选择你刚刚创建的数据库,使用USE语句来选择数据库:USE my_database;
  4. 使用CREATE TABLE语句来定义表的结构,例如,要创建一个简单的用户表,你可以执行:

CREATE TABLE users (

id INT AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(255) NOT NULL,

email VARCHAR(255) NOT NULL,

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

这个命令创建了一个名为users的表,它包含四个字段:id(自增主键)、username(非空字符串)、email(非空字符串)和created_at(时间戳,默认为当前时间)。

1.创建springboot项目(已有可跳过)

项目结构:

2.编辑Mybatis配置

xml配置文件用于创建编辑数据库的基础命令,向数据表插入数据、更新数据、删除数据等,注意名字要相对应。Java文件声明数据库编辑方法,如搜索账户是否存在

3.连接数据库

1)打开navicat,点击“文件”-> “新建连接”->“MySQL”,或者直接点击下面的“连接”->“MySQL”,输入本地创建的数据库名称,用户名(默认为root),密码,端口(默认3306)

连接成功后会显示本地的数据库,点击“文件”->“新建”->“表”创建数据表,双击表可查看数据表内容。

2)springboot项目连接数据库:

  • Username:用户名
  • Password:密码
  • url:数据库路由,格式一般为“jdbc:mysql://localhost:3306/******(数据表名称)useUnicode=true&characterEncoding=utf8&useSSL=false”
  • driver-class-name:驱动java数据库连接程序(指JDBC,项目通过jdbc api与数据库进行交互)

4.创建模型类,用于与数据库里的数据表相连

  • @TableName(“数据表名”):连接的数据表表名
  • @Entity:将java标记为实体类,从而允许这些类映射到数据库中的表
  • @Id:JPA(Java Persistence API)规范中的注解,标识实体类中的主键字段
  • @TableId:MyBatis-Plus 框架中的注解,用于标识实体类的主键字段

注意:@Id和@TableId二者作用相同,按项目所包含依赖选择其一即可

右键->“生成”->“构造函数”setter和getter

5.创建接口mapper,定义对数据库的操作

6.创建controller类,来处理前端发送的请求

  • @CrossOrigin(origin=“*”):允许所有来源访问该url,解决本地访问跨域问题
  • @RestController:@Controller和@ResponseBody的组合,它告诉Spring这个类是一个控制器(Controller),并且所有的方法返回的内容都直接写入HTTP响应体中,而不是解析为跳转路径,这通常用于RESTful Web服务,其中返回的数据是JSON或XML等格式。
  • @RequestMapping(“/api/***”):用于将HTTP请求映射到特定的处理器方法或处理器类上
  • @Autowired:用于自动装配Spring容器中的bean, 当Spring发现@Autowired注解时,它会尝试查找匹配的bean来注入到被注解的字段、构造函数参数或setter方法的参数中。如果找到多个匹配的bean,并且没有指定哪个bean应该被注入,那么将会抛出一个异常。如果找不到匹配的bean,并且该字段是可选的(即,它是null可以接受的类型,比如接口或接口的实现类的字段),那么它将不会被注入,而是保持为null。
  • @GetMapping:定义请求方式为Get方法(也可以是post方法PostMapping)

7.创建xml配置文件,编写SQL映射语句

id:映射方法名

namespace:命名空间,指向mapper包里面的相同名字的java文件

UserMapper.java:

  • @Mapper指明是一个mapper接口
  • public interface UserMapper extends BaseMapper:UserMapper接口继承自BaseMapper,这意味着它自动拥有了BaseMapper中定义的所有方法,这些方法都是针对UserInfo类型的数据进行操作的。这大大减少了编写重复性代码的需要。
  • 定义了一些自定义的方法,如selectByAccount、existsByAccount、insertUserToken等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《宝塔 Nginx SSL 端口管理实战指南:域名解析、端口冲突与后端代理解析》

📢 Nginx & SSL 端口管理分析 1️⃣ 域名解析与 SSL 申请失败分析 在使用宝塔申请 www.mywebsite.test 的 SSL 证书时,遇到了解析失败的问题。最初,我认为 www 只是一个附加的前缀,不属于域名的关键部分,因此只为…

java和Springboot和vue开发的企业批量排班系统人脸识别考勤打卡系统

演示视频: https://www.bilibili.com/video/BV1KU9iYsEBU/?spm_id_from888.80997.embed_other.whitelist&t52.095574&bvidBV1KU9iYsEBU 主要功能: 管理员管理员工,采集员工人脸特征值存入数据库,可选择多个员工批量排班…

DeepSeek学习规划

DeepSeek是一个专注于深度学习和人工智能技术研究与应用的平台,旨在通过系统化的学习和实践,帮助用户掌握深度学习领域的核心知识和技能。为了在DeepSeek平台上高效学习,制定一个科学合理的学习规划至关重要。以下是一个详细的学习规划&#…

打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题

一、关联文章: 1、Docker Desktop 安装使用教程 2、家庭版 Windows 安装 Docker 没有 Hyper-V 问题 3、安装 Windows Docker Desktop - WSL问题 二、问题解析 打开 Docker Desktop 出现问题,如下: Docker Engine Stopped : Docker引擎停止三、解决方法 1、检查服务是否…

突破Ajax跨域困境,解锁前端通信新姿势

一、引言 在当今的 Web 开发领域,前后端分离的架构模式已经成为主流,它极大地提升了开发效率和项目的可维护性。在这种开发模式下,前端通过 Ajax 技术与后端进行数据交互,然而,跨域问题却如影随形,成为了开…

Mercury、LLaDA 扩散大语言模型

LLaDA 参考: https://github.com/ML-GSAI/LLaDA https://ml-gsai.github.io/LLaDA-demo/ 在线demo: https://huggingface.co/spaces/multimodalart/LLaDA Mercury 在线demo: https://chat.inceptionlabs.ai/ 速度很快生成

Rust~String、str、str、String、Box<str> 或 Box<str>

Rust语言圣经中定义 str Rust 语言类型大致分为两种:基本类型和标准库类型,前者由语言特性直接提供,后者在标准库中定义 str 是唯一定义在 Rust 语言特性中的字符串,但也是几乎不会用到的字符串类型 str 字符串是 DST 动态大小…

大数据SQL调优专题——底层调优

引入 上一篇我们提到了调优的常见切入点,核心就是通过数据产出情况发现问题,借助监控等手段收集信息排查瓶颈在哪,最后结合业务理解,等价重写思路去解决问题。 在实际工作场景中,去保证数据链路产出SLA的时候&#x…

Hue 编译异常:ImportError: cannot import name ‘six‘ from ‘urllib3.packages‘

个人博客地址:Hue 编译异常:ImportError: cannot import name six from urllib3.packages | 一张假钞的真实世界 在编译Hue的时候出现错误信息如下: Running /home/zhangjc/ysten/git/ysten-hue/build/env/bin/hue makemigrations --noinpu…

计算机网络——详解TCP三握四挥

文章目录 前言一、三次握手1.1 三次握手流程1.2 tcp为什么需要三次握手建立连接? 二、四次挥手2.1 四次挥手流程2.2 为什么是四次,不是三次?2.3 为什么要等待2msl?2.4 TCP的保活计时器 前言 TCP和UDP是计算机网络结构中运输层的两…

# C# 中堆(Heap)与栈(Stack)的区别

在 C# 中,堆和栈是两种不同的内存分配机制,它们在存储位置、生命周期、性能和用途上存在显著差异。理解堆和栈的区别对于优化代码性能和内存管理至关重要。 1. 栈(Stack) 1.1 定义 栈是一种后进先出(LIFO&#xff0…

如何把图片或者图片地址存到 MySQL 数据库中以及如何将这些图片数据通过 JSP 显示在网页中

如何优雅地管理图片:从MySQL数据库存储到JSP展示的全流程解析 在互联网时代,一张引人入胜的图片往往能为网站带来巨大的流量。而作为开发者的我们,如何高效地管理和展示这些图片资源则成为了一项重要的技术挑战。今天,我们就一起…

「拼好帧」小黄鸭 Lossless Scaling 软件介绍与下载

「拼好帧」小黄鸭 Lossless Scaling 软件介绍与下载 在游戏和视频播放时,你是否遇到过分辨率不匹配、画质模糊的问题?今天给大家介绍一款神器——Lossless Scaling(拼好帧),也被玩家们亲切地称为“小黄鸭”&#xff0…

科普|无人机专业术语

文章目录 前言一、飞控二、电调三、通道四、2S、3S、4S电池五、电池后面C是什么意思?六、电机的型号七、什么是电机的KV值?八、螺旋桨的型号九、电机与螺旋桨的搭配 前言 无人机飞控系统控制飞行姿态,电调控制电机转速,遥控器通道控制飞行动作。电池C…

和鲸科技携手四川气象,以 AI 的力量赋能四川气象一体化平台建设

气象领域与农业、能源、交通、环境科学等国计民生关键领域紧密相连,发挥着不可替代的重要作用。人工智能技术的迅猛发展,为气象领域突破困境带来了新的契机。AI 技术能够深度挖掘气象大数据中蕴含的复杂信息,助力人类更精准地把握自然规律&am…

Linux mount命令

Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。 一、挂载功能介绍 挂载方法:mount DECE MOUNT_POINT 命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要挂载的设备&…

《Operating System Concepts》阅读笔记:p177-p178

《Operating System Concepts》学习第 18 天,p177-p178 总结,总计 2 页。 一、技术总结 1.implicit thread A programming model that transfers the creation and management of threading from application developers to compilers and run-time l…

Redis缓存一致性难题:如何让数据库和缓存不“打架”?

标题:Redis缓存一致性难题:如何让数据库和缓存不“打架”?(附程序员脱发指南) 导言:当数据库和缓存成了“异地恋” 想象一下:你刚在美团下单了一份麻辣小龙虾,付款后刷新页面&#…

委托者模式(掌握设计模式的核心之一)

目录 问题: 举例: 总结:核心就是利用Java中的多态来完成注入。 问题: 今天刷面经,刷到装饰者模式,又进阶的发现委托者模式,发现还是不理解,特此记录。 举例: ​老板​…

[密码学实战]Java实现SM4加解密(ecb,cbc)及工具验证

前言 在现代信息安全领域,数据加密技术是保障数据安全的核心手段之一。SM4作为中国国家密码管理局发布的对称加密算法,因其高效性和安全性,广泛应用于金融、政务、通信等领域。本文将详细介绍如何使用Java实现SM4的加解密操作,并深入探讨SM4的几种常见加密模式及其原理。 …