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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习搭建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
相关文章
|
26天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
103 6
|
6天前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
36 4
|
26天前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
48 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
26天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
62 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
8天前
|
存储 SQL 缓存
AnalyticDB 实时数仓架构解析
AnalyticDB 是阿里云自研的 OLAP 数据库,广泛应用于行为分析、数据报表、金融风控等应用场景,可支持 100 trillion 行记录、10PB 量级的数据规模,亚秒级完成交互式分析查询。本文是对 《 AnalyticDB: Real-time OLAP Database System at Alibaba Cloud 》的学习总结。
23 1
|
12天前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
33 5
|
22天前
|
架构师 关系型数据库 MySQL
MySQL最左前缀优化原则:深入解析与实战应用
【10月更文挑战第12天】在数据库架构设计与优化中,索引的使用是提升查询性能的关键手段之一。其中,MySQL的最左前缀优化原则(Leftmost Prefix Principle)是复合索引(Composite Index)应用中的核心策略。作为资深架构师,深入理解并掌握这一原则,对于平衡数据库性能与维护成本至关重要。本文将详细解读最左前缀优化原则的功能特点、业务场景、优缺点、底层原理,并通过Java示例展示其实现方式。
50 1
|
24天前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
41 1
|
26天前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
55 1
|
6天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
38 0

热门文章

最新文章