知者何南 发表于 2024-5-12 20:52:07

从零开始学Spring Boot系列-集成MySQL

在Spring Boot中集成MySQL是为了让开辟者能够轻松地与MySQL数据库进行交互。本篇文章将指导你如安在Spring Boot 3.2.3项目中利用Gradle来集成MySQL。在此之前,我们需要在Ubuntu 22.04上安装MySQL 8作为我们的数据库服务器。
安装MySQL8

本文是在wsl2上的Ubuntu 22.04上安装MySQL8.
步骤1: 更新系统

打开终端,并利用以下下令更新系统:
apt update
apt upgrade步骤2: 安装MySQL

利用以下下令安装MySQL服务器:
apt install mysql-serverhttps://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303162852.png
步骤3: 启动MySQL服务

安装完成后,启动MySQL服务, WSL子系统Ubuntu中不包罗systemctl下令,利用service下令。
service mysql starthttps://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303162955.png
步骤4: 验证MySQL安装

通过以下下令验证MySQL是否正在运行:
servicemysql statushttps://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303162812.png
我们还可以用查看进程
ps -ef | grep mysqlhttps://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303163213.png
假如一切正常,你将看到MySQL服务正在运行的信息。
步骤5: 登录Mysql

第一种登录方法

root用户没有设置密码,不能从本地登录,可以利用sudo下令进入,此时不需要输入密码回车即可进入。
mysql -u root -phttps://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303163634.png
第二种登录方法

MySQL在安装时会创建很多默认用户,其中就包罗一个 debian-sys-maint,并且创建了该用户的随机密码,存储该用户信息的文件位于 /etc/mysql/debian.cnf文件中。
https://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303163938.png
可以利用debian-sys-main用户登录MySQL。
https://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303164054.png
步骤6: 更改root用户密码

修改 root 密码 mysql 8.+ 的修改密码方式
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
flush privileges;https://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303165308.png
步骤7: 设置root用户的远程访问

此时root用户的host属性仍旧是localhost,也就是只能从本地访问,因此可以将root用户的访问权限由本地改为本地和外部都可以访问,将host的值由localhost改为 %。
update user set user.host='%' where user.user='root';
flush privileges;https://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303165614.png
WSL中的Ubuntu子系统访问可以直接利用127.0.0.1或localhost进行访问。但是在外部一旦换成Ubuntu真正的IP地点访问就会报错。这时还需要修改MySQL配置文件中的干系配置项 /etc/mysql/mysql.conf.d/mysqld.cnf, 修改 bind-address = 0.0.0.0 。
https://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303170902.png
重启MySQL后,再次通过IP地点远程毗连。
步骤8: 创建数据库

利用root用户登录Mysql,创建一个test的数据库
CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;步骤9: 创建数据表

创建一张user的表
CREATE TABLE user (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学生ID',
name VARCHAR(20) NOT NULL COMMENT '姓名',
email VARCHAR(20)   COMMENT '邮箱',
ageINTCOMMENT '年龄',
remark VARCHAR(80) COMMENT '备注',
PRIMARY KEY (id), /*设置id为主键*/
INDEX (name) /*设置name为普通索引*/
) ENGINE=InnoDB;步骤9: 插入数据

在user表中插入一条数据
INSERT INTO test.user (id, name, email, age, remark) VALUES (1, 'jack', 'jack@163.com', 18, '关注公众号:代码匠心');添加依赖

首先,你需要在build.gradle文件中添加Spring Boot的starter-data-jpa和MySQL驱动的依赖。
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
}

group = 'cn.daimajiangxin'
version = '0.0.1-SNAPSHOT'

java {
sourceCompatibility = '17'
targetCompatibility = '17'
}

repositories {
      maven { url 'https://maven.aliyun.com/repository/jcenter' }
      maven { url 'https://maven.aliyun.com/repository/google' }
      maven { url 'https://maven.aliyun.com/repository/central' }
      maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java:8.0.17'
}配置Spring Boot数据源

在src/main/resources/application.properties或application.yaml文件中,配置数据源和JPA的干系设置。确保利用你在MySQL安装过程中设置的root密码。
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=your_mysql_root_password
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=trueapplication.yaml
spring:
datasource:
    url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
    username: root
    password: your_mysql_root_password
jpa:
    database-platform: org.hibernate.dialect.MySQLDialect
    show-sql: true确保将your_database_name和your_mysql_root_password替换为实际的数据库名称和root用户的密码。
创建实体

创建一个简单的实体类,利用JPA注解来映射到数据库表。
package cn.daimajiangxin.springboot.learning.model;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Data;

@Data
@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
    private int age;
    private String remark;
}创建Repository

创建一个继承自JpaRepository的接口,以便Spring Data JPA可以自动为你生成实现。
package cn.daimajiangxin.springboot.learning.repository;

import cn.daimajiangxin.springboot.learning.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interfaceUserRepository extends JpaRepository<User, Long> {
    // 你可以添加自定义查询方法
}创建Service

创建一个服务类来处理业务逻辑。
package cn.daimajiangxin.springboot.learning.repository;

import cn.daimajiangxin.springboot.learning.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    private final UserRepository userRepository;

    @Autowired
    public UserService(UserRepository userRepository) {
      this.userRepository = userRepository;
    }

    public List<User> getAllUsers() {
      return userRepository.findAll();
    }

    // 添加其他业务逻辑方法...
}创建Controller

创建一个控制器类来处理HTTP请求。
package cn.daimajiangxin.springboot.learning.controller;

import cn.daimajiangxin.springboot.learning.model.User;
import cn.daimajiangxin.springboot.learning.repository.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
      this.userService = userService;
    }

    @GetMapping("/users")
    public List<User> getAllUsers() {
      return userService.getAllUsers();
    }
    // 添加其他请求处理方法...
}运行应用程序

现在,你可以运行你的Spring Boot应用程序,并尝试访问来http://localhost:8080/users查看全部用户的列表。
https://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/20240303184556.png
确保你的MySQL数据库正在运行,并且已经创建了相应的数据库和表,并且插入了数据。
总结

在Spring Boot中集成MySQL是一项简单而直接的使命,只需添加依赖、配置数据源、创建实体、Repository、Service和Controller即可。在本文中,我们学习了如安在Spring Boot 3.2.3项目中利用Gradle来集成MySQL,并构建了一个简单的RESTful API来获取用户列表。记得根据你的实际需求来调整数据库配置和业务逻辑。
我是代码匠心,和我一起学习更多精彩知识!!!扫描二维码!关注我,实时获取推送。
https://pic-1258258471.cos.ap-nanjing.myqcloud.com/img/sad/%E5%85%AC%E4%BC%97%E5%8F%B7.jpg
源文来自:https://daimajiangxin.cn

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 从零开始学Spring Boot系列-集成MySQL