搭建3层架构实战 MySQL(二)|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习搭建3层架构实战 MySQL(二)

开发者学堂课程【Java Spring Boot 2.6.0开发实战-1024程序员节创造营公益课搭建3层架构实战 MySQL(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/903/detail/14340


搭建3层架构实战 MySQL(二)


五,实操代码展示

1) 快速创建 springboot 项目的两种方式:

第一种,在浏览器中输入网址 start.spring.io 进入官网,勾选 Maven Project Language 栏选择 Java,最后选择好对应的版本,加入对应的依赖即可,点击 GENERATE CTRL 将项目打包好,导入对应的包即可使用。

第二种,点击 File,选择 New,勾选 SpringStarterProject,在弹窗内修改项目名称,在 Available 中搜索 Web,MySQL Driver 并加入对应的依赖,同时,勾选SpringBootDevTools,点击 Finish 即可完成项目的创建。

2) 项目代码展示:

启动器:

package com.alibaba;

import org.springframework.boot. CommandLineRunner;口

@SpringBootApplication

public class Application implements CommandLineRunnerr

public static void main(String[] args) {

SpringApplication.run(Application.class,args);

}

@Override

public void run(String.. . argo) throws Exception {

// TODO Auto-generated method stub

system.out.println("阿里巴巴Java Spring Boot 2.5实战开发课程");

}

}

在 api 接口处创建一个 Usercontroller

在 dao 层下创建一个 UserDAO 和 UserRepository 类

在 services 层下创建一个 UserService、

创建一个 entity 包,在其包下创建一User 的实体类

进入数据库查看对应的字段

实体类 User 代码展示如下:

//两种方法生成 get set 方法

//使用快捷键一键生成

//加入 Lombok Config 依赖,再添加 @Data 注解

package com.alibaba.entity;

//@Data 使用该注解可以不用生成 get set 方法

public class User {

private Integer id;

private String name;

private String password;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setnNme(String username) {

his.username = name;

}

public String getPwd() {

return pwd;}

public void setPwd(String pwd) {

this.pwd = pwd;

}

Application.properties下添加如下配置:

spring.application.name=SpringBoot260Demoserver.port=8088

spring.datasource.url=jdbc:mysql://localhost/alibaba?useSSL=false&serverTimezo

spring.datasource.username=root

spring.datasource.password=1234qwer

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

UserRepository 类代码展示:

package com.alibaba.repository;

import java.util.List;口

public interface UsersRepository extends CrudRepository<Users,Integer> {

@Query( "select u from Users u where u.name =?1")

public List<Users> getUserByName(@Param( "name" )string name);

@Query("select u from Users u where u.name=?1 and u.password=?2")

public Users getUserByNameAndPassword(String name,String password);

@Query ( "select u from Users u where u.id =?1")

public Users getUserById(int id);

}

在 pom.xml 中添加以下依赖:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

刷新一下 maven,更新 jar 包

UserController 代码展示如下:

package com.alibaba.api;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.RequestMapping;

import com.alibaba.entity.Users;

import com.alibaba.repository.UsersRepository;

@RequestMapping("/getAll")

@RestController

public class UsersController {

@Autowired UsersRepository userReposity;@RequestMapping("/getAll")public List<Users> getAll(){

return userReposity.getAl1();

}

}

启动项目查看是否报错

进入浏览器输入以下指令:

Localhost:8088/users/getAll

返回的结果为; 

UserDAO 类的代码展示如下:

package com.alibaba.dao;

import java.util.List;

import com.alibaba.entity.Users;

import com.alibaba.repository.UserRepository;

public class UsersDAO {

@Autowired UserRepository userReposity;

public List<Users> getAll(String name) {

return userReposity.getUserByName(name);

}

} 

进入 UserService 层更新代码:

Importorg.springframework.beans.factory.annotation.Autowired;

import com.alibaba.dao.UsersDAO;

import com.alibaba.entity.Users;

public class Userservice {

@Autowired UsersDAO userDAO;

public List<Users> getAl1(String name) {

return userDAO.getUserByName( name) ;

}

}

进入 UserController 层更新代码:

@RequestMapping(" /users")@RestController

public class UsersControllerr

@Autowired Userservice;

@RequestMapping( "/getAl1/{name}")

public List<Users> getAll(@Param( "name" ) string name) {

[ / String name ="java";

return userservice.getAl1( name) ;

}

} 

进入 UserController 层更新代码;

@RequestMapping(" / users")@Restcontroller

public class UsersController {

@Autowired

UserService;

@RequestMapping("/getAll/{name}")

public List<Users> getAll(@Pathvariable("name") string name){

/ / String name ="java";

return userService.getAll(name);}}

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
128 3
Mysql高可用架构方案
|
23天前
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
|
28天前
|
SQL 存储 缓存
【赵渝强老师】MySQL的体系架构
本文介绍了MySQL的体系架构,包括Server层的7个主要组件(Connectors、Connection Pool、Management Service & Utilities、SQL Interface、Parser、Optimizer、Query Caches & Buffers)及其作用,以及存储引擎层的支持情况,重点介绍了InnoDB存储引擎。文中还提供了相关图片和视频讲解。
【赵渝强老师】MySQL的体系架构
|
9天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
1月前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
71 4
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
196 1
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
70 5
|
2月前
|
架构师 关系型数据库 MySQL
MySQL最左前缀优化原则:深入解析与实战应用
【10月更文挑战第12天】在数据库架构设计与优化中,索引的使用是提升查询性能的关键手段之一。其中,MySQL的最左前缀优化原则(Leftmost Prefix Principle)是复合索引(Composite Index)应用中的核心策略。作为资深架构师,深入理解并掌握这一原则,对于平衡数据库性能与维护成本至关重要。本文将详细解读最左前缀优化原则的功能特点、业务场景、优缺点、底层原理,并通过Java示例展示其实现方式。
102 1
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
69 1
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
81 0

热门文章

最新文章