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

简介: 快速学习搭建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;
相关文章
|
4月前
|
人工智能 监控 前端开发
支付宝 AI 出行助手高效研发指南:4 人团队的架构迁移与提效实战
支付宝「AI 出行助手」是一款集成公交、地铁、火车票、机票、打车等多项功能的智能出行产品。
743 21
支付宝 AI 出行助手高效研发指南:4 人团队的架构迁移与提效实战
|
4月前
|
监控 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注册中心服务 构建商品
800 3
|
4月前
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
810 0
|
2月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
2月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
3月前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
384 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
3月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
509 7
|
4月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
1095 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
3月前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。

推荐镜像

更多