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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 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);}}

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
人工智能 监控 前端开发
支付宝 AI 出行助手高效研发指南:4 人团队的架构迁移与提效实战
支付宝「AI 出行助手」是一款集成公交、地铁、火车票、机票、打车等多项功能的智能出行产品。
320 21
支付宝 AI 出行助手高效研发指南:4 人团队的架构迁移与提效实战
|
2月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
158 7
|
2月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
372 3
|
2月前
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
324 0
|
3月前
|
存储 设计模式 人工智能
AI Agent安全架构实战:基于LangGraph的Human-in-the-Loop系统设计​
本文深入解析Human-in-the-Loop(HIL)架构在AI Agent中的核心应用,探讨其在高风险场景下的断点控制、状态恢复与安全管控机制,并结合LangGraph的创新设计与金融交易实战案例,展示如何实现效率与安全的平衡。
405 0
|
3天前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
3天前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
70 7
|
2月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
291 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
20天前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
14天前
|
存储 人工智能 关系型数据库
阿里云AnalyticDB for PostgreSQL 入选VLDB 2025:统一架构破局HTAP,Beam+Laser引擎赋能Data+AI融合新范式
在数据驱动与人工智能深度融合的时代,企业对数据仓库的需求早已超越“查得快”这一基础能力。面对传统数仓挑战,阿里云瑶池数据库AnalyticDB for PostgreSQL(简称ADB-PG)创新性地构建了统一架构下的Shared-Nothing与Shared-Storage双模融合体系,并自主研发Beam混合存储引擎与Laser向量化执行引擎,全面解决HTAP场景下性能、弹性、成本与实时性的矛盾。 近日,相关研究成果发表于在英国伦敦召开的数据库领域顶级会议 VLDB 2025,标志着中国自研云数仓技术再次登上国际舞台。
107 0

推荐镜像

更多