经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring Boot » 查看文章
从零开始学Spring Boot系列-集成MySQL
来源:cnblogs  作者:代码匠心  时间:2024/3/4 9:17:12  对本文有异议

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

安装MySQL8

本文是在wsl2上的Ubuntu 22.04上安装MySQL8.

步骤1: 更新系统

打开终端,并使用以下命令更新系统:

  1. apt update
  2. apt upgrade

步骤2: 安装MySQL

使用以下命令安装MySQL服务器:

  1. apt install mysql-server

20240303162852

步骤3: 启动MySQL服务

安装完成后,启动MySQL服务, WSL子系统Ubuntu中不包含systemctl命令,使用service命令。

  1. service mysql start

20240303162955

步骤4: 验证MySQL安装

通过以下命令验证MySQL是否正在运行:

  1. service mysql status

20240303162812

我们还可以用查看进程

  1. ps -ef | grep mysql

20240303163213
如果一切正常,你将看到MySQL服务正在运行的信息。

步骤5: 登录Mysql

第一种登录方法

root用户没有设置密码,不能从本地登录,可以使用sudo命令进入,此时不需要输入密码回车即可进入。

  1. mysql -u root -p

20240303163634

第二种登录方法

MySQL在安装时会创建很多默认用户,其中就包含一个 debian-sys-maint,并且创建了该用户的随机密码,存储该用户信息的文件位于 /etc/mysql/debian.cnf文件中。
20240303163938
可以利用debian-sys-main用户登录MySQL。
20240303164054

步骤6: 更改root用户密码

修改 root 密码 mysql 8.+ 的修改密码方式

  1. alter user 'root'@'localhost' identified with mysql_native_password by '123456';
  2. flush privileges;

20240303165308

步骤7: 设置root用户的远程访问

此时root用户的host属性仍然是localhost,也就是只能从本地访问,因此可以将root用户的访问权限由本地改为本地和外部都可以访问,将host的值由localhost改为 %。

  1. update user set user.host='%' where user.user='root';
  2. flush privileges;

20240303165614
WSL中的Ubuntu子系统访问可以直接使用127.0.0.1或localhost进行访问。但是在外部一旦换成Ubuntu真正的IP地址访问就会报错。这时还需要修改MySQL配置文件中的相关配置项 /etc/mysql/mysql.conf.d/mysqld.cnf, 修改 bind-address = 0.0.0.0 。
20240303170902
重启MySQL后,再次通过IP地址远程连接。

步骤8: 创建数据库

使用root用户登录Mysql,创建一个test的数据库

  1. CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

步骤9: 创建数据表

创建一张user的表

  1. CREATE TABLE user (
  2. id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学生ID',
  3. name VARCHAR(20) NOT NULL COMMENT '姓名',
  4. email VARCHAR(20) COMMENT '邮箱',
  5. age INT COMMENT '年龄',
  6. remark VARCHAR(80) COMMENT '备注',
  7. PRIMARY KEY (id), /*设置id为主键*/
  8. INDEX (name) /*设置name为普通索引*/
  9. ) ENGINE=InnoDB;

步骤9: 插入数据

在user表中插入一条数据

  1. INSERT INTO test.user (id, name, email, age, remark) VALUES (1, 'jack', 'jack@163.com', 18, '关注公众号:代码匠心');

添加依赖

首先,你需要在build.gradle文件中添加Spring Boot的starter-data-jpa和MySQL驱动的依赖。

  1. plugins {
  2. id 'java'
  3. id 'org.springframework.boot' version '3.2.3'
  4. id 'io.spring.dependency-management' version '1.1.4'
  5. }
  6. group = 'cn.daimajiangxin'
  7. version = '0.0.1-SNAPSHOT'
  8. java {
  9. sourceCompatibility = '17'
  10. targetCompatibility = '17'
  11. }
  12. repositories {
  13. maven { url 'https://maven.aliyun.com/repository/jcenter' }
  14. maven { url 'https://maven.aliyun.com/repository/google' }
  15. maven { url 'https://maven.aliyun.com/repository/central' }
  16. maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
  17. }
  18. dependencies {
  19. implementation 'org.springframework.boot:spring-boot-starter-web'
  20. compileOnly 'org.projectlombok:lombok'
  21. annotationProcessor 'org.projectlombok:lombok'
  22. implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
  23. runtimeOnly 'mysql:mysql-connector-java:8.0.17'
  24. }

配置Spring Boot数据源

在src/main/resources/application.properties或application.yaml文件中,配置数据源和JPA的相关设置。确保使用你在MySQL安装过程中设置的root密码。
application.properties

  1. spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
  2. spring.datasource.username=root
  3. spring.datasource.password=your_mysql_root_password
  4. spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
  5. spring.jpa.show-sql=true

application.yaml

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true
  4. username: root
  5. password: your_mysql_root_password
  6. jpa:
  7. database-platform: org.hibernate.dialect.MySQLDialect
  8. show-sql: true

确保将your_database_name和your_mysql_root_password替换为实际的数据库名称和root用户的密码。

创建实体

创建一个简单的实体类,使用JPA注解来映射到数据库表。

  1. package cn.daimajiangxin.springboot.learning.model;
  2. import jakarta.persistence.Entity;
  3. import jakarta.persistence.GeneratedValue;
  4. import jakarta.persistence.GenerationType;
  5. import jakarta.persistence.Id;
  6. import lombok.Data;
  7. @Data
  8. @Entity
  9. public class User {
  10. @Id
  11. @GeneratedValue(strategy = GenerationType.IDENTITY)
  12. private Long id;
  13. private String name;
  14. private String email;
  15. private int age;
  16. private String remark;
  17. }

创建Repository

创建一个继承自JpaRepository的接口,以便Spring Data JPA可以自动为你生成实现。

  1. package cn.daimajiangxin.springboot.learning.repository;
  2. import cn.daimajiangxin.springboot.learning.model.User;
  3. import org.springframework.data.jpa.repository.JpaRepository;
  4. public interface UserRepository extends JpaRepository<User, Long> {
  5. // 你可以添加自定义查询方法
  6. }

创建Service

创建一个服务类来处理业务逻辑。

  1. package cn.daimajiangxin.springboot.learning.repository;
  2. import cn.daimajiangxin.springboot.learning.model.User;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Service;
  5. import java.util.List;
  6. @Service
  7. public class UserService {
  8. private final UserRepository userRepository;
  9. @Autowired
  10. public UserService(UserRepository userRepository) {
  11. this.userRepository = userRepository;
  12. }
  13. public List<User> getAllUsers() {
  14. return userRepository.findAll();
  15. }
  16. // 添加其他业务逻辑方法...
  17. }

创建Controller

创建一个控制器类来处理HTTP请求。

  1. package cn.daimajiangxin.springboot.learning.controller;
  2. import cn.daimajiangxin.springboot.learning.model.User;
  3. import cn.daimajiangxin.springboot.learning.repository.UserService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.GetMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import java.util.List;
  8. @RestController
  9. public class UserController {
  10. private final UserService userService;
  11. @Autowired
  12. public UserController(UserService userService) {
  13. this.userService = userService;
  14. }
  15. @GetMapping("/users")
  16. public List<User> getAllUsers() {
  17. return userService.getAllUsers();
  18. }
  19. // 添加其他请求处理方法...
  20. }

运行应用程序

现在,你可以运行你的Spring Boot应用程序,并尝试访问来http://localhost:8080/users查看所有用户的列表。
20240303184556
确保你的MySQL数据库正在运行,并且已经创建了相应的数据库和表,并且插入了数据。

总结

在Spring Boot中集成MySQL是一项简单而直接的任务,只需添加依赖、配置数据源、创建实体、Repository、Service和Controller即可。在本文中,我们学习了如何在Spring Boot 3.2.3项目中使用Gradle来集成MySQL,并构建了一个简单的RESTful API来获取用户列表。记得根据你的实际需求来调整数据库配置和业务逻辑。


我是代码匠心,和我一起学习更多精彩知识!!!扫描二维码!关注我,实时获取推送。
公众号
源文来自:https://daimajiangxin.cn

原文链接:https://www.cnblogs.com/daimajiangxin/p/18050487

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号