在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-server
步骤3: 启动MySQL服务
装置实现后,启动MySQL服务, WSL子系统Ubuntu中不蕴含systemctl命令,应用service命令。
service mysql start
步骤4: 验证MySQL装置
通过以下命令验证MySQL是否正在运行:
service mysql status
咱们还能够用查看过程
ps -ef | grep mysql
如果一切正常,你将看到MySQL服务正在运行的信息。
步骤5: 登录Mysql
第一种登录办法
root用户没有设置明码,不能从本地登录,能够应用sudo命令进入,此时不须要输出明码回车即可进入。
mysql -u root -p
第二种登录办法
MySQL在装置时会创立很多默认用户,其中就蕴含一个 debian-sys-maint,并且创立了该用户的随机明码,存储该用户信息的文件位于 /etc/mysql/debian.cnf文件中。
能够利用debian-sys-main用户登录MySQL。
步骤6: 更改root用户明码
批改 root 明码 mysql 8.+ 的批改明码形式
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
flush privileges;
步骤7: 设置root用户的近程拜访
此时root用户的host属性依然是localhost,也就是只能从本地拜访,因而能够将root用户的拜访权限由本地改为本地和内部都能够拜访,将host的值由localhost改为 %。
update user set user.host='%' where user.user='root';
flush privileges;
WSL中的Ubuntu子系统拜访能够间接应用127.0.0.1或localhost进行拜访。然而在内部一旦换成Ubuntu真正的IP地址拜访就会报错。这时还须要批改MySQL配置文件中的相干配置项 /etc/mysql/mysql.conf.d/mysqld.cnf, 批改 bind-address = 0.0.0.0 。
重启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 '邮箱',
age INT COMMENT '年龄',
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=true
application.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 interface UserRepository 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查看所有用户的列表。
确保你的MySQL数据库正在运行,并且曾经创立了相应的数据库和表,并且插入了数据。
总结
在Spring Boot中集成MySQL是一项简略而间接的工作,只需增加依赖、配置数据源、创立实体、Repository、Service和Controller即可。在本文中,咱们学习了如何在Spring Boot 3.2.3我的项目中应用Gradle来集成MySQL,并构建了一个简略的RESTful API来获取用户列表。记得依据你的理论需要来调整数据库配置和业务逻辑。
我是代码匠心,和我一起学习更多精彩常识!!!扫描二维码!关注我,实时获取推送。
源文来自:https://daimajiangxin.cn
发表回复