基于SpringBoot后端实现连接MySQL数据库并存贮数据

简介: 基于SpringBoot后端实现连接MySQL数据库并存贮数据

一、什么是MySQL数据库

MySQL是一种流行的关系型数据库管理系统(RDBMS),它是开源的,由瑞典公司MySQL AB开发。现在MySQL是Oracle公司的一部分,但MySQL仍然作为开源项目继续开发和维护。

MySQL数据库具有以下特点:

1. 关系型数据库管理系统(RDBMS):MySQL是一种关系型数据库,数据以表格的形式存储,这些表格可以通过关系进行连接。

2. 开源和免费:MySQL是开源的,意味着你可以免费使用它,而且有一个庞大的开源社区支持。

3. 跨平台性:MySQL支持多种操作系统,包括Linux、Windows、macOS等,可以在各种环境中部署和运行。

4. 高性能:MySQL是一种高性能的数据库管理系统,能够处理大量的数据和并发请求。

5. 可扩展性:MySQL支持主从复制、分片等技术,可以实现数据库的水平和垂直扩展。

6. 丰富的功能:MySQL提供了许多功能,包括事务支持、索引、触发器、存储过程、视图等,使得它适用于各种不同的应用场景。

7.MySQL应用:于Web应用程序、企业应用、移动应用等各种场景,是最受欢迎的数据库管理系统之一。

二、基于SpringBoot框架连接MySQL数据库

1、首先添加MySQL依赖:

在pom.xml文件中添加MySQL连接器依赖。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version> <!-- 根据需要选择版本 -->
</dependency>

2、配置数据库连接:

在application.properties或application.yml文件中配置MySQL数据库连接信息。

spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

或者在application.yml中:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/your_database_name
    username: your_username
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver

3、创建实体类:

创建与数据库表对应的实体类,并使用JPA注解进行标记。

import javax.persistence.Entity;
import javax.persistence.Id;
 
@Entity
public class User {
    @Id
    private Long id;
    private String username;
    private String email;
    // Getters and setters
}

4、创建Repository接口:

创建一个继承自Spring Data JPA的Repository接口。这将允许你执行数据库操作。

import org.springframework.data.jpa.repository.JpaRepository;
 
public interface UserRepository extends JpaRepository<User, Long> {
}

5、使用Repository:

在你的服务类或控制器中注入UserRepository,以便进行数据库操作。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.List;
 
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
 
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }
 
    // 其他方法,如保存用户,删除用户等
}

三、编写业务SQL语句

在使用Spring Boot时,你可以使用多种方式编写SQL语句,包括:

1、使用Spring Data JPA的方法命名约定:

Spring Data JPA允许你通过在Repository接口中定义方法名来自动生成SQL查询。例如,如果你的实体类是User,你可以在UserRepository接口中定义如下方法来查询用户:

public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByUsername(String username);
}

在这个例子中,Spring Data JPA会根据方法名自动生成查询语句,用于根据用户名查询用户。

2、用@Query注解:你可以在Repository接口的方法上使用@Query注解来编写自定义的SQL查询。

例如:

public interface UserRepository extends JpaRepository<User, Long> {
    @Query("SELECT u FROM User u WHERE u.username = :username")
    List<User> findByUsername(@Param("username") String username);
}

3、使用EntityManager:你可以通过注入EntityManager对象来执行原生的SQL查询。

例如:

import javax.persistence.EntityManager;
import javax.persistence.Query;
import java.util.List;
 
@Service
public class UserService {
    @Autowired
    private EntityManager entityManager;
 
    public List<User> findUsersByUsername(String username) {
        Query query = entityManager.createNativeQuery("SELECT * FROM user WHERE username = ?", User.class);
        query.setParameter(1, username);
        return query.getResultList();
    }
}

在这个例子中,我们使用EntityManager对象执行了原生的SQL查询,然后将结果映射为User实体类的列表。

四、常见SQL语句使用(附学习网站)

基本的SQL语句示例,包括查询、插入、更新和删除。

1、查询数据(SELECT):

-- 查询表中所有数据
SELECT * FROM table_name;
 
-- 查询特定列数据
SELECT column1, column2 FROM table_name;
 
-- 查询满足条件的数据
SELECT * FROM table_name WHERE condition;
 
-- 查询并排序
SELECT * FROM table_name ORDER BY column_name;
 
-- 查询并限制结果数量
SELECT * FROM table_name LIMIT 10;

2、插入数据(INSERT):

-- 插入单行数据
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
 
-- 插入多行数据
INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4);

4、更新数据(UPDATE):

-- 更新表中所有数据
UPDATE table_name SET column1 = new_value1, column2 = new_value2;
 
-- 更新满足条件的数据
UPDATE table_name SET column1 = new_value1 WHERE condition;

5、删除数据(DELshi

-- 删除表中所有数据
DELETE FROM table_name;
 
-- 删除满足条件的数据
DELETE FROM table_name WHERE condition;

使用案列(登陆注册):

创建用户表:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    password VARCHAR(100) NOT NULL
);

用户注册(插入新用户):

INSERT INTO users (username, email, password) VALUES ('user1', 'user1@example.com', 'hashed_password');

其中,hashed_password是经过加密处理的密码,可以使用加密算法(如bcrypt)对密码进行加密,然后再存储到数据库中。

用户登录(验证用户名和密码):

SELECT * FROM users WHERE username = 'user1' AND password = 'hashed_password';

查询将返回匹配给定用户名和密码的用户信息。请注意,实际情况中应该对密码进行加密,然后再进行比较,以增加安全性。

密码加密:

在实际应用中,密码通常应该加密存储,以防止数据库泄露导致密码被泄露。这里假设使用bcrypt算法进行密码加密。在Java中,可以使用BCryptPasswordEncoder等库进行加密,例如:

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 
String password = "user_password";
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String hashedPassword = passwordEncoder.encode(password);
 
//然后将hashedPassword插入到数据库中。

五、总结

使用Spring Boot操作MySQL数据库的总结如下:

  1. 简化开发:Spring Boot提供了简洁的配置和自动化的工作流程,使得在Spring应用中集成MySQL变得非常容易。它通过自动配置和约定优于配置的原则,大大简化了开发人员的工作。
  2. 强大的生态系统:Spring Boot构建在Spring框架之上,具有庞大而活跃的社区支持和丰富的生态系统。这意味着你可以轻松地找到解决问题的文档、教程和第三方库。
  3. 快速开发和部署:Spring Boot提供了内置的Web服务器(如Tomcat、Jetty),因此你可以直接打包应用程序并运行,无需部署到外部容器。这加快了开发和部署的速度。
  4. 集成Spring Data JPA:Spring Boot集成了Spring Data JPA,这是一个强大的数据访问框架,可以极大地简化与数据库的交互。使用Spring Data JPA,你可以通过定义Repository接口和方法来执行各种数据库操作,而无需编写复杂的SQL语句。
  5. 自动配置数据库连接:Spring Boot提供了自动配置数据库连接的功能,只需在配置文件中提供数据库相关信息,Spring Boot就能自动创建数据源并连接到数据库。
  6. 灵活的配置选项:虽然Spring Boot提供了自动配置,但你仍然可以根据需要进行自定义配置。它提供了丰富的配置选项,允许你灵活地调整应用程序的行为。

优点:

  • 快速启动:Spring Boot应用程序可以快速启动,并且具有较低的内存消耗,适合于微服务架构和云部署。
  • 简化配置:Spring Boot的自动配置功能简化了配置过程,减少了开发人员的工作量。
  • 丰富的生态系统:Spring Boot基于Spring框架,拥有丰富的生态系统和活跃的社区支持。
  • 集成Spring Data JPA:Spring Boot集成了Spring Data JPA,简化了与数据库的交互和持久化操作。

缺点:

  • 隐藏细节:虽然Spring Boot简化了开发过程,但有时它会隐藏一些细节,导致开发人员对底层工作原理的理解不足。
  • 学习曲线:尽管Spring Boot简化了配置和开发流程,但初学者可能需要花一些时间来学习Spring Boot的核心概念和最佳实践。
  • 依赖冲突:由于Spring Boot自动配置了许多依赖项,可能会导致依赖冲突或版本不兼容的问题,需要谨慎管理依赖项。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
809 2
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
1372 1
|
11月前
|
NoSQL Java 网络安全
SpringBoot启动时连接Redis报错:ERR This instance has cluster support disabled - 如何解决?
通过以上步骤一般可以解决由于配置不匹配造成的连接错误。在调试问题时,一定要确保服务端和客户端的Redis配置保持同步一致。这能够确保SpringBoot应用顺利连接到正确配置的Redis服务,无论是单机模式还是集群模式。
811 5
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1975 5
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
841 70
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
675 41
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
923 17
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
697 18
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
814 11
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
452 10

推荐镜像

更多