数据持久化技术——MP(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 数据持久化技术——MP(一)

1 环境搭建

1.1 创建一个maven的project

image.png


1.2 pom.xml文件导入web开发依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.6</version>
</parent>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>


1.3 创建SpringBoot项目的主程序入口

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}


2 代码生成器

 顾名思义,代码生成器就是用来直接生成代码的一个程序。首先导入相关依赖


<!--Mybatis-Plus生成器依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.3.1.tmp</version>
</dependency>
<!--freemarker 模板引擎(没有用原生的模板引擎)-->
<dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.31</version>
</dependency>


 生成的代码需要使用lombok简化实体类开发导入相关依赖


<!--lombok简化实体类开发,如果之前没有下载过依赖的同名插件的话需要下载安装,然后重启一下idea-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>


 创建utils包,拷贝代码生成器,需要修改的两个地方:数据库连接的数据库名、项目目录名。运行main方法,报错java.lang.ClassNotFoundException:com.mysql.jdbc.Driver,没有驱动,需要导入数据库连接依赖


<!--数据库连接驱动-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.32</version>
</dependency>


 生成成功之后,mapper层的接口上加@mapper注解或者在主程序入口出添加,简单说一下service的方法都从哪里来,也就是Ctrl进源码看他继承方法内部又实现的接口里定义了后面需要使用到的所有方法。


3 配置数据库

导入mybatis-plus的场景启动器


<!--mybatis-plus的场景启动器 内置了jdbc的启动器无需重复引用-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>


resources目录下创建配置文件application.yml,配置数据库的相关信息


server:
  # 修改后端项目运行时的端口号信息
  port: 8888
spring:
  # 配置数据源信息
  datasource:
    url: jdbc:mysql://localhost:3306/music
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource


 上面使用到了pool(池子),数据库连接池也就是数据源,所谓的数据库连接池从字面意思上翻译就是将数据库连接放到一个池子里。相比之前的好处就是只需要创建一次连接,后面的都直接用不用一次次创建。数据源使用到了Druid的,需要导入Druid的依赖


<!--整合druid的数据源-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.17</version>
</dependency>


4 导入前端页面

 resources目录下创建templates文件夹,将前端页面导入。由于SpringBoot默认的打包方式是jar包,但是JSP不支持在jar包(一种压缩包)中编译,所以SpringBoot默认不支持JSP,于是我们需要引入第三方的模板引擎技术——Thymeleaf实现页面的渲染。

导入thymeleaf引擎的场景启动器


<!--thymeleaf引擎的场景启动器-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
机器学习/深度学习 存储 算法
数据结构 | 算法的时间复杂度和空间复杂度【详解】(一)
什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
|
自然语言处理 搜索推荐 API
GPT-4o mini:探索最具成本效益的语言模型及其在开发中的应用
【8月更文第5天】随着自然语言处理技术的快速发展,语言模型正变得越来越强大且易于访问。OpenAI 最新发布的 GPT-4o mini 模型以其卓越的性能和极具竞争力的价格,迅速成为了业界关注的焦点。作为开发者,您是否已经开始探索这个“迄今为止最具成本效益的小模型”?本文旨在鼓励开发者分享使用 GPT-4o mini 及其他大型语言模型的经验,并探讨如何有效地利用这些工具来提升开发效率和创新能力。
491 0
|
人工智能 调度
【MCP教程系列】在阿里云百炼上用Qwen3+且慢MCP,用AI重新定义资产管理效率
通义千问Qwen3通过MCP协议,在Agent中具备强大的工具调度与复杂任务拆解能力,成为构建复杂AI应用的核心引擎。以“基金助手”为例,集成且慢MCP服务后,可一键调用多源金融数据并动态组合分析工具,实现精准调度。在阿里云百炼平台上,只需4步即可构建一个“金融顾问”智能体:开通且慢MCP服务、新建智能体、添加MCP技能、测试效果。此外,还可增加提示词规范输出内容,完成更复杂的任务。
1215 0
|
Go
Golang深入浅出之-信号(Signals)处理与优雅退出Go程序
【4月更文挑战第23天】在Go语言中,使用`os/signal`包处理信号对实现程序优雅退出和响应中断至关重要。本文介绍了如何注册信号处理器、处理常见问题和错误,以及提供代码示例。常见问题包括未捕获关键信号、信号处理不当导致程序崩溃和忽略清理逻辑。解决方案包括注册信号处理器(如`SIGINT`、`SIGTERM`)、保持信号处理器简洁和执行清理逻辑。理解并正确应用这些原则能增强Go程序的健壮性和可管理性。
616 1
|
JSON 资源调度 JavaScript
Node入门(3):CommonJS 模块化规范的使用
本文讲解了CommonJS 模块化规范在 Node.js 中的使用,以及查找模块时的机制。
291 0
|
安全 算法 Linux
Linux用户和组管理 - 用户和组配置文件
一、介绍安全3A 二、用户 user 三、组 group 四、Linux 安全上下文 五、Linux 组的类别 六、Linux 用户和组的主要配置文件 七、密码加密 八、shadow 文件格式 九、passwd 文件格式 十、密码的复杂性策略 十一、 group 文件格式
Linux用户和组管理 - 用户和组配置文件