前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当SpringBoot碰上MySQL,就像鱼儿遇见了水 | 技术创作特训营第一期

当SpringBoot碰上MySQL,就像鱼儿遇见了水 | 技术创作特训营第一期

原创
作者头像
bug菌
修改2023-08-14 23:12:28
7700
修改2023-08-14 23:12:28
举报
文章被收录于专栏:《项目实战教学》

写在前面🔥

        MySQL 是目前项目中运用最广泛的关系型数据库,无论是互联网大厂,还是中小型公司,几乎都在用。MySQL 不仅体积小、速度快、源码开放,且深受广受开发者喜爱。

        所以,这期我们就围绕它进行重点讲解,那么,这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途中有任何不清楚或疑问的地方皆可评论区留言或私信,bug菌将第一时间给予解惑,那么废话不多说,直接开整!Fighting!! 

环境说明🔥

本地的开发环境: 开发工具:IDEA 2021.3 JDK版本: JDK 1.8 Spring Boot版本:2.3.1 RELEASE Maven版本:3.8.2

1. 前言🔥

        通过前几期的基础教学,想必大家都已经Spring Boot项目创建及启动等基本内容了吧,今个儿我就来整点高级的,跟数据库交互交互。如何连接mysql数据库,创建数据库表,最后再成功查询数据库并打印数据内容?是这期要讲的内容,可能会比较简单,同时也希望大家不要掉以轻心,打好基础,认真听哦。

2. 正文🔥

2.1 MySQL 简介

        MySQL 是目前项目中运用最广泛的关系型数据库,无论是互联网大厂,还是中小型公司,几乎都在用。MySQL 体积小、速度快、源码开放,所以广受开发者喜爱。MySQL 的安装非常简单,针对不同的操作系统,MySQL 都提供了安装包的下载。

        MySQL 目前主推的版本是 8.0,参考官方手册请这里点击:

        也可以自主选择跟我一样的版本,MySQL5.6,为了保证课程讲解过程中的一致性嘛。 

2.2 如何安装 MySQL

        我这里使用的是Windows系统,所以就教大家如何在Windows11系统上安装MySQL,但如果有云服务器的话,建议安装在云服务器上,这样就可以长时间运行 MySQL 而不用担心服务重启的问题。按照步骤参照官网文档。

        Windows系统的同学可以看我这篇安装教程《Windows11下如何快速安装MySQL服务(mysql5.6.50)》,已经单独把这块安装内容剥离出去成独文了,为了不影响正文进度。

2.3 如何创建数据库&&表

        在本地Windows系统中安装完MySQL服务后,需要在本地新建一个数据库,如何创建数据库教程请看这里《如何通过Navicat创建Mysql数据库》,讲解的非常详细。

         通过使用Navicat 数据库可视化管理工具来创建一个mysql数据库。我们先连接本地数据库,输入连接名,主机ip,端口(3306),用户名,密码是你当初安装mysql服务时填写的。

        接着就点击左下角的【测试连接】,查验你本地的mysql服务是否能够被连接上?

        如果展示如上截图,提示【连接成功】,则证明你本地的mysql服务是开启的。

        如果还不会操作的,请参考bug菌写的这篇 navicat如何创建数据库及导入数据库文件

2.4 如何通过 Navicat 连接 MySQL

        Navicat 是一个从我参加工作到现在一直都在用的 MySQL 客户端工具,通过 Navicat 可以轻松连接数据库,并执行增删改查操作。

        连接数据库也非常的简单,只需要填写主机 IP 地址、端口、用户名和密码即可。

        填写完正确的用户名跟密码,点击下方的测试连接,如果显示连接成功,则表示连接数据库成功。

2.5 Spring Boot 整合 MySQL 数据库

        Spring Boot 整合 MySQL 数据库非常简单,只需要添加 MySQL 依赖并在配置文件中添加数据库配置即可。我们可以不用编写原始的访问数据库的代码,也不用调用 JDBC 或者连接池就可以访问 MySQL。

2.5.1)创建Spring Boot 项目

        使用 Intellij IDEA 新建一个 Spring Boot 项目,使用 Java 8 版本生成项目后导入。

2.5.2)添加 MySQL 的 JDBC Starter

        添加 MySQL 的 Java连接驱动依赖和 JDBC Starter。选择【MySQL Driver 】,最后点击右下角的Finish即可,会创建并跳转到一个新的项目中。

新项目创建完成,并idea打开目录截图:

对应pom.xml文件中的代码:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>connect-mysql-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>connect-mysql-demo</name>
    <description>connect-mysql-demo</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.5.3)创建数据库&&表

        先创建个数据库,取名这个大家随意啊,命名最好见名之意。

选择刚才创建好的数据库下层的表,然后右键打击选择【新建表】

建几个字段,然后点击保存。

附上创建数据库表sql语句:

代码语言:javascript
复制
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `name` varchar(255) NOT NULL COMMENT '用户名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `sex` varchar(2) DEFAULT NULL COMMENT '性别',
  `address` varchar(255) DEFAULT NULL COMMENT '住址',
  `describes` varchar(255) DEFAULT NULL COMMENT '描述',
  `image` varchar(255) DEFAULT NULL COMMENT '头像',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=utf8;

先随便造几条数据吧,待会儿有用得上。

插入数据语句Sql如下:

代码语言:javascript
复制
INSERT INTO `springboot_db`.`user`(`id`, `name`, `age`, `sex`, `address`, `describes`, `image`) VALUES (1, '刘亦菲', 70, '女', '上海闵行', '这是db1的用户', './template/image/刘亦菲.jpg');
INSERT INTO `springboot_db`.`user`(`id`, `name`, `age`, `sex`, `address`, `describes`, `image`) VALUES (2, '杨幂', 20, '女', '北京朝阳', '这是db1的用户', './template/image/杨幂.jpg');
INSERT INTO `springboot_db`.`user`(`id`, `name`, `age`, `sex`, `address`, `describes`, `image`) VALUES (3, '彭于晏', 30, '男', '河北邯郸', '这是db1的用户', './template/image/彭于晏.jpg');

        ok!以上跟着bug菌一步一步来哈,不要急,更不要遗漏任何一步骤,接下来我们就是配置项目连接数据库信息。

2.5.4)配置数据库链接驱动信息

        在 application.yml 文件中添加数据库链接驱动信息。

代码语言:javascript
复制
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springboot_db?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
    username: root
    password: 123456  #数据库名、用户名和密码改为自己的
    driver-class-name: com.mysql.cj.jdbc.Driver

2.5.5)新建实体类

        新建实体类User.java,具体请看如下代码:

代码语言:javascript
复制
/**
 * 用户基本信息实体
 */
@Data
public class UserEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer id;

    private String name;

    private Integer age;

    private String sex;

    private String address;

    private String describes;

    private String image;

}

建议在 pom.xml 文件中添加 lombok 的依赖。

代码语言:javascript
复制
    <!--lombok相关jar-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

2.5.6)创建测试类

        在写测试用例之前,我们先在pim依赖中引入jdbc starter,目的是使用JDBC模板接口。

代码语言:javascript
复制
  <!--引入jdbc stater 目的是使用JDBC模板接口-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        接着在测试类中添加以下代码:

代码语言:javascript
复制
package com.example.connectmysqldemo;

import com.example.connectmysqldemo.entity.UserEntity;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import javax.annotation.Resource;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

@SpringBootTest
@Slf4j
class ConnectMysqlDemoApplicationTests {

    @Resource
    private JdbcTemplate jdbcTemplate;


    @Test
    void contextLoads() {
        String sql ="select * from user";
        List<UserEntity> users = jdbcTemplate.query(sql, new RowMapper<UserEntity>() {
            @Override
            public UserEntity mapRow(ResultSet rs, int rowNum) throws SQLException {
                UserEntity user = new UserEntity();
                user.setId(rs.getInt("id"));
                user.setAge(rs.getInt("age"));
                user.setName(rs.getString("name"));
                user.setSex(rs.getString("sex"));
                user.setAddress(rs.getString("address"));
                user.setDescribes(rs.getString("describes"));
                user.setImage(rs.getString("image"));
                return user;
            }
        });
        log.info("查询成功");
        users.forEach(p->{
            log.info("用户{}",p);
        });
    }

}

2.5.7 知识点总结

        Spring Boot 的测试类主要放置在 src/test/java 目录下面,项目创建成功后,Spring Boot 会根据项目名称自动为我们生成测试类。

比如说本次项目名为 connect-mysql-demo,那么测试类名为 ConnectMysqlDemoApplicationTests。

  • @SpringBootTest 注解能够测试我们的项目主类,该项目为 - ConnectMysqlDemoApplication。
  • @Test 注解是 junit 单元测试的注解,表示该方法为测试方法。
  • JdbcTemplate 一个通过 JDBC 连接数据库的工具类,spring-boot-starter-jdbc 依赖中包含了该类。
  • @Resource 注解会帮我们在 Spring Boot 启动的时候注入一个 JdbcTemplate 的对象。
  • jdbcTemplate.query() 方法通过 SQL 语句和匿名内部类参数的形式,执行 SQL 并查询结果集。
  • RowMapper 就是查询到的每一行数据对象,我们可以通过重写 mapRow 方法将数据结果集封装到 User 对象上。         右键菜单运行 contextLoads() 方法就可以在日志中看到 SQL 执行的结果。

         如下,我们可以看到日志打印出来在数据库user表中mock的数据。

2.6 如何通过 Intellij IDEA 连接 MySQL

2.6.1  Intellij IDEA配置数据库连接

        我们除了 Navicat 连接数据库工具,还可以使用 Intellij IDEA 自身直接连 MySQL。

点击「Database」面板,在左上角选择 + 号,选择 Data Source ,再选择 MySQL。

 在弹出面板中填写连接信息。

        如果是第一次连接 MySQL 的话,记得点击「download」下载 MySQL 驱动

 下载之后之后点击「test connection」测试是否链接成功,如果出现以下界面,则表示 OK。

        选择右侧的数据库表,双击,就可以查看到数据了。

2.6.2 Intellij IDEA 配置SQL查询面板

        在 idea中的「console」SQL 查询面板里可以编写 SQL 语句来执行增删改查操作。

1:选择你想查询的表鼠标邮件选择【New】

 2:选择【New】打开后选择弹框中的第一个【Query Console】

 3:你就可以在控制台中写sql语句啦,实现数据的增删改查操作。

比如进行user 表的查询。

        至此,本期内容bug菌就介绍的差不多啦,我想同学们看到这里,也都对MySQL数据库有了一定的了解及Spring Boot如何集成MySQL实现数据的增删改查了,这也是我写本期内容的目的所在,因为在日常项目中,与数据库的交互那简直是家常便饭,所以希望不会的同学们能快速学会它,掌握它,如何与之集成实现数据的交互,最终能处理数据实现前后端分离项目的数据增删改查操作,这也是市面上非常流行的前后端开发模式。

-End-

原创作者|bug菌

【选题思路】

        MySQL作为目前项目开发中运用最广泛的关系型数据库,无论是互联网大厂,还是中小型公司,几乎都在用,而且它还完全开源。当Spring Boot架构越发的轻巧便利,与之那便是强强联合,当初学者步入社会成为一名开发者,SpringBoot项目与Mysql数据库是最日常的搭配,所以这是初学者的必修课,也是我写这篇文章的初衷,希望能帮助更多的初学者或小白们能够快速掌握它,成为一名优秀的"搬砖工"。

        因此,本文着重介绍SpringBoot项目如何快速搭建、Idea开发工具的快速搭建及可视化工具的使用,最后是集成到项目中实现数据的交互。

【写作提纲】

  1. Spring Boot作为一个后端架构,本身而言是不存在数据的概念,当跟数据库进行交互,它们就会擦出"爱"的火花(介绍spring boot如何集成Mysql数据库)
  2. 介绍目前流行的关系型数据库--Mysql,及本地如何安装Mysql数据库,如何进行库表及字段的创建与简单SQL的使用与执行。
  3. 介绍Navicat 工具的日常使用,着重介绍它如何连接MySQL数据库,实现可视化数据库的使用与执行。
  4. 简单讲述Spring Boot项目的快速搭建及基本依赖包的配置。
  5. 讲述Spring Boot项目如何集成MySQL数据库,实战代码演示如何连接数据库及实现数据的增删改查操作。
  6. 介绍如何通过 Intellij IDEA 连接 MySQL,实现idea编辑器的便利使用MySQL数据库。
  7. 本期内容的初衷是为了帮助初学者们能够快速掌握Spring Boot架构的创建与使用,及如何集成Mysql 等关系型数据库,乃至能有能力处理数据,实现数据的增删改查逻辑。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面🔥
  • 环境说明🔥
  • 1. 前言🔥
  • 2. 正文🔥
    • 2.1 MySQL 简介
      • 2.2 如何安装 MySQL
        • 2.3 如何创建数据库&&表
          • 2.4 如何通过 Navicat 连接 MySQL
            • 2.5 Spring Boot 整合 MySQL 数据库
              • 2.5.1)创建Spring Boot 项目
              • 2.5.2)添加 MySQL 的 JDBC Starter
              • 2.5.3)创建数据库&&表
              • 2.5.4)配置数据库链接驱动信息
              • 2.5.5)新建实体类
              • 2.5.6)创建测试类
              • 2.5.7 知识点总结
            • 2.6 如何通过 Intellij IDEA 连接 MySQL
              • 2.6.1  Intellij IDEA配置数据库连接
              • 2.6.2 Intellij IDEA 配置SQL查询面板
          • 【选题思路】
          • 【写作提纲】
          相关产品与服务
          云数据库 MySQL
          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档