当前位置: 首页 > news >正文

Springboot项目搭建(2)-用户详细信息查询

1. 提要信息

1.1 java四类八种

在Java中,四类指的是Java中的基本数据类型和引用数据类型:

  1. 基本数据类型:Java提供了八种基本数据类型,包括整数型、浮点型、字符型和布尔型。
  2. 引用数据类型:指向对象的引用,如类、接口、数组等。
  3. 特殊数据类型:包括void类型和null类型。
  4. 复合数据类型:由基本数据类型和其他类型组合而成的类型,如数组。

八种则是指Java中的基本数据类型:

  1. int:32位整数,范围是-2^31到2^31-1。
  2. short:16位整数,范围是-2^15到2^15-1。
  3. long:64位整数,范围是-2^63到2^63-1,需要在数字后加上L或l。
  4. byte:8位整数,范围是-128到127。
  5. float:32位浮点数,用于表示小数。
  6. double:64位浮点数,精度比float高。
  7. char:16位Unicode字符。
  8. boolean:只有两个值,true和false。

1.2 什么是请求头信息

请求头信息(Request Headers)是在HTTP请求中,客户端向服务器发送的一系列键值对,它们提供了关于请求本身的信息,以及客户端环境和请求体的附加信息。请求头信息可以帮助服务器更好地理解请求的上下文,并据此做出适当的响应。常见的请求头信息有:HostUser-AgentAccept等。

1.3 get与post请求的区别

POST:适合发送大量数据和任意类型的数据,不受字符类型限制。

GET:适合发送少量数据,且数据需要被编码为URL有效的格式。虽然理论上可以发送任何类型的数据,但实际应用中通常用于发送简单的查询参数。

1.4 请描述重载和重写的区别

重载:指的是在一个类中可以定义多个同名方法,只要这些方法的参数列表不同(参数的类型、数量或者顺序不同)。重载方法可以有不同的返回类型,也可以没有返回类型,但它们的参数列表必须不同。

重写:指的是在子类中重新定义父类的方法。重写的方法必须有相同的方法名、参数列表和返回类型。如果父类的方法被声明为final,则不能被重写。

1.5 创建控制器类常用三种方式

1.实现Controller接口,需要实现方法完成业务操作,有局限性

2.使用@Controller注解,可以创建多个方法,方法上设置RequestMapping访问地址,响应数据格式需要自定义,尤其JSON支持不是很完整

3.使用@RestControl注解,支持Rest请求方式,内置了ResponseBody可以自动转换JSON

1.6 方法&函数

方法的定义格式:

访问权限限定符,返回类型 方法名称(参数列表){ 方法体;}

例:

public int addNumbers(int num1, int num2) {
    int sum = num1 + num2;
    return sum;
}

共同点:

  • 都可以传递参数、都有返回值
  • 都是用于执行一个过程

不同点:

  • 函数通常是单独创建并被调用,不需要前置条件,如:自定义四舍五入
  • 方法是类成员,通常情况需要使用类对象调用,在JAVA中只有方法,没有函数。

2.令牌验证ArticleController

2.1 定义

书接上回,文章结尾11.JWT令牌

我使用了"login"登录方法处理用户登录请求。它接收用户名和密码,验证用户信息,并在验证成功后生成一个JWT令牌。

下面将使用"list"方法处理获取用户信息的请求。它接收上方生成的JWT令牌,验证令牌的有效性,并根据令牌中的信息查询用户信息(若令牌有效则给予放行,反之拒绝访问)。

2.2 令牌的生成与验证

login方法生成的JWT令牌在list方法中被验证。这是两个方法之间的直接关联。

login方法负责生成令牌,而list方法负责验证令牌的有效性。

login方法通过用户名和密码验证用户身份,而list方法通过验证JWT令牌来确认用户的身份。

2.3 具体操作 

文件地址:org/example/controller/ArticleController.java

@RequestHeader:获取请求头信息

package org.example.controller;import jakarta.servlet.http.HttpServletResponse;
import org.example.entity.Result;
import org.example.utils.JwtUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/article")
public class ArticleController {@RequestMapping("/list")public Result<String> list(@RequestHeader(name = "Authorization")String token, HttpServletResponse response) {//验证tokentry{Map<String,Object> claims = JwtUtil.parseToken(token);return Result.success("查询所有文章列表");}catch(Exception e){response.setStatus(401);//设置响应状态return Result.error("未登录");}}
}

2.4 效果演示

3.拦截器

3.1 定义

功能:接收并拦截所有的请求

1.过程中检查用户是否已经登录,以及是否拥有执行特定操作的权限。

2.在请求到达具体的业务逻辑处理之前,拦截器可以对请求数据进行预处理,如验证、格式化或转换。

3.2 函数操作LoginInterceptor

在example下创建org/example/interceptors/LoginInterceptor.java

拦截器的功能方法:

  1. request 请求对象,客户端向服务器发送的数据包
  2. response响应对象,服务端向客户端传递数据,发送的数据包
  3. handler 头协议对象,请求协议
package org.example.interceptors;
//登录拦截器
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.example.utils.JwtUtil;
import org.example.utils.ThreadLocalUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import java.util.Map;
@Component //由Spring框架,注册拦截器
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//令牌验证String token = request.getHeader("Authorization");try{Map<String,Object> claims = JwtUtil.parseToken(token);//拿到令牌后,给予放行return true;}catch (Exception e){response.setStatus(401);return false;}}
}

3.3 拦截器的注册WebConfig

在example下创建org/example/config/WebConfig.java

在启动NewsApplication.java后,优先加载该文件。

他是工程的一个配置类,主要作用是拦截器的使用,服务于用户首页。

package org.example.config;
import org.example.interceptors.LoginInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration //工程启动即加载
public class WebConfig implements WebMvcConfigurer {@Autowired //获得拦截器工具private LoginInterceptor loginInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {//登录接口、注册接口不拦截//excludePathPatterns不拦截方法registry.addInterceptor(loginInterceptor).excludePathPatterns("/user/login","/user/register");}
}

3.4 返回ArticleController

既已配置了开局启动项目,那么在后续的操作中便不必反复验证。

更改后的org/example/controller/ArticleController.java代码:

package org.example.controller;
import jakarta.servlet.http.HttpServletResponse;
import org.example.entity.Result;
import org.example.utils.JwtUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@RestController
@RequestMapping("/article")
public class ArticleController {@RequestMapping("/list")public Result<String> list() {//验证tokenreturn Result.success("所有文章数据");}
}

4.获取用户详细信息:

1.控制层中编写方法userinfo 2.service和mapper中,根据用户指令查询信息【已配置】

4.1 定义请求方法UserController

org/example/controller/UserController.java

定义了一个处理HTTP POST请求的方法userInfo, 返回类型是Result,

并获取token值(token中装着用户名信息)。

//详细信息@PostMapping("/userinfo")public Result<User> userInfo(@RequestHeader(name = "Authorization")String token){//从令牌中获得用户名Map<String,Object> map = JwtUtil.parseToken(token);String username = (String)map.get("username");//将获取的用户名转换成String字符串//查询用户对应的信息User user = userService.findUserByUsername(username);return Result.success(user);}

4.2 配置忽略密码User

org/example/entity/User.java中找到想要隐藏的项

在其上方设置忽略属性(密码为例):

@JsonIgnore:配置springmvc把当前对象转换成json字符串的时候忽略password

@JsonIgnore
private String password;

4.3 配置命名转换

数据库中的列名为下划线间隔,实体映射类中的命名为驼峰命名。

针对这种无法匹配的情况,在/resources/application.yml中配置自动命名转换。

mybatis:
  configuration:
    map-underscore-to-camel-case: true

4.4 ThreadLocal本地线程

作用:确保数据不会混淆 

4.4.1 线程测试

在"test"下新建类:src/test/java/ThreadLocalTest.java

import org.junit.jupiter.api.Test;
public class ThreadLocalTest {@Testvoid testThreadLocalSetAndGet() {//创建线程池,用于存放用户信息ThreadLocal tl = new ThreadLocal();new Thread(() -> {tl.set("Adela"); //在线程池中创建一个线程System.out.println(Thread.currentThread().getName()+":"+tl.get());System.out.println(Thread.currentThread().getName()+":"+tl.get());System.out.println(Thread.currentThread().getName()+":"+tl.get());},"蓝色").start();new Thread(() -> {tl.set("Hela"); //在线程池中再创建一个线程System.out.println(Thread.currentThread().getName()+":"+tl.get());System.out.println(Thread.currentThread().getName()+":"+tl.get());System.out.println(Thread.currentThread().getName()+":"+tl.get());},"黑色").start();}
}

4.4.2 导入线程功能

于网络查找线程功能代码,放在org/example/utils/ThreadLocalUtil.java

package org.example.utils;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("all")
public class ThreadLocalUtil {//提供ThreadLocal对象,private static final ThreadLocal THREAD_LOCAL = new ThreadLocal();//根据键获取值public static <T> T get(){return (T) THREAD_LOCAL.get();}//存储键值对public static void set(Object value){THREAD_LOCAL.set(value);}//清除ThreadLocal 防止内存泄漏public static void remove(){THREAD_LOCAL.remove();}
}

4.4.3 线程应用

返回org/example/interceptors/LoginInterceptor.java,把拦截到的数据,给到线程池中。

package org.example.interceptors;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.example.utils.JwtUtil;
import org.example.utils.ThreadLocalUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import java.util.Map;
@Component
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String token = request.getHeader("Authorization");try{Map<String,Object> claims = JwtUtil.parseToken(token);👇//把业务数据存储到ThreadLocal本地线程中ThreadLocalUtil.set(claims);👆return true;}catch (Exception e){response.setStatus(401);return false;}}👇@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {//清除线程中的数据ThreadLocalUtil.remove();}👆
}

相关文章:

Springboot项目搭建(2)-用户详细信息查询

1. 提要信息 1.1 java四类八种 在Java中&#xff0c;四类指的是Java中的基本数据类型和引用数据类型&#xff1a; 基本数据类型&#xff1a;Java提供了八种基本数据类型&#xff0c;包括整数型、浮点型、字符型和布尔型。引用数据类型&#xff1a;指向对象的引用&#xff0c…...

Stable Diffusion的加噪和去噪详解

SD模型原理&#xff1a; Stable Diffusion概要讲解Stable diffusion详细讲解Stable Diffusion的加噪和去噪详解Diffusion ModelStable Diffusion核心网络结构——VAEStable Diffusion核心网络结构——CLIP Text EncoderStable Diffusion核心网络结构——U-NetStable Diffusion中…...

解决 Gradle 报错:`Plugin with id ‘maven‘ not found` 在 SDK 开发中的问题

在 SDK 开发过程中&#xff0c;使用 Gradle 构建和发布 SDK 是常见的任务。在将 SDK 发布为 AAR 或 JAR 包时&#xff0c;你可能会使用 apply plugin: maven 来发布到本地或远程的 Maven 仓库。但是&#xff0c;随着 Gradle 版本的更新&#xff0c;特别是从 Gradle 7 版本开始&…...

EMD-KPCA-Transformer多变量回归预测!分解+降维+预测!多重创新!直接写核心!

EMD-KPCA-Transformer多变量回归预测&#xff01;分解降维预测&#xff01;多重创新&#xff01;直接写核心&#xff01; 目录 EMD-KPCA-Transformer多变量回归预测&#xff01;分解降维预测&#xff01;多重创新&#xff01;直接写核心&#xff01;效果一览基本介绍程序设计参…...

前端 px、rpx、em、rem、vh、vw计量单位的区别

目录 一、px 二、rpx 三、em 四、rem 五、vh和vw 六、rpx 和 px之间的区别 七、px 与 rem 的区别 一、px px&#xff08;像素&#xff09;&#xff1a; 1、相对单位&#xff0c;代表屏幕上的一个基本单位&#xff0c;逻辑像素。 2、不会根据屏幕尺寸或分辨率自动调整大…...

OceanBase数据库产品与工具介绍

OceanBase&#xff1a;蚂蚁集团自主研发的分布式关系数据库 1、什么是 OceanBase&#xff1f; OceanBase 是由蚂蚁集团完全自主研发的企业级分布式关系数据库&#xff0c;始创于 2010 年。它具有以下核心特点&#xff1a; 数据强一致性&#xff1a;在分布式架构下确保数据强…...

学习threejs,对模型多个动画切换展示

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.AnimationMixer 动画…...

【Bug合集】——Java大小写引起传参失败,获取值为null的解决方案

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;本文面向的人群 二&#xff1a;错误场景引入 三&#xff1a;正确场景引入 四&#xf…...

Python爬虫:如何从1688阿里巴巴获取公司信息

在当今的数字化时代&#xff0c;数据已成为企业决策和市场分析的重要资产。对于市场研究人员和企业分析师来说&#xff0c;能够快速获取和分析大量数据至关重要。阿里巴巴的1688.com作为中国最大的B2B电子商务平台之一&#xff0c;拥有海量的企业档案和产品信息。本文将介绍如何…...

单片机学习笔记 2. LED灯闪烁

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯 目录 0、实现的功能 1、Keil工程 2、代码实现 0、实现的功能 LED灯闪烁 1、Keil工程 闪烁原理&#xff1a;需要进行软件延时达到人眼能分辨出来的效果。常用的延时方法有软件延时和定时器延时。此次先进行软…...

折叠光腔衰荡高反射率测量技术的matlab模拟理论分析

折叠光腔衰荡高反射率测量技术的matlab模拟理论分析 1. 前言2. 光腔模型3. 光腔衰荡过程4. 衰荡时间与反射率的关系5. 测量步骤①. 光腔调节&#xff1a;②. 光腔衰荡测量&#xff1a;③. 计算衰荡时间常数&#xff1a;④. 反射率计算&#xff1a; 6. 实际应用中的调整7. 技术优…...

ubuntu 16.04 中 VS2019 跨平台开发环境配置

su 是 “switch user” 的缩写&#xff0c;表示从当前用户切换到另一个用户。 sudo 是 “superuser do” 的缩写&#xff0c;意为“以超级用户身份执行”。 apt 是 “Advanced Package Tool” 的缩写&#xff0c;Ubuntu中用于软件包管理的命令行工具。 1、为 root 用户设置密码…...

C语言第13节:指针(3)

1. 回调函数 回调函数的基本思想是&#xff0c;将函数指针作为参数传递给另一个函数&#xff0c;并在需要时通过这个函数指针调用对应的函数。这种方式允许一个函数对执行的内容进行控制&#xff0c;而不需要知道具体的实现细节。 回调函数在以下场景中尤为有用&#xff1a; …...

java:简单小练习,面积

面积&#xff1a;圆和长方形 接口&#xff1a;实现面积 test:调用 一、interface: 对于接口&#xff0c;它是Java中一个新增的知识点&#xff0c;而C中没有&#xff0c;因为Java有一个缺陷就是不可以实现多继承&#xff0c;只可以单继承&#xff0c;这就限制了有些功能的使…...

@Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)

1. 前置知识 Configuration public class RedisConfig {Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template new RedisTemplate<>();template.setConnectionFactory(facto…...

PostgreSQL提取JSON格式的数据(包含提取list指定索引数据)

PostgreSQL提取JSON格式的数据&#xff08;包含提取list指定索引数据&#xff09; ->>, ->, #>, #>> 在PostgreSQL中&#xff0c;处理json或jsonb类型数据时&#xff0c;->>, ->, #> 和 #>> 是非常有用的操作符&#xff0c;它们允许你以…...

如何利用谷歌浏览器提高网络安全

在当今数字化时代&#xff0c;网络安全已成为我们不可忽视的重要议题。作为全球最受欢迎的网络浏览器之一&#xff0c;谷歌浏览器不仅提供了快速、便捷的浏览体验&#xff0c;还内置了多种安全功能来保护用户的在线安全。本文将详细介绍如何通过谷歌浏览器提高您的网络安全&…...

go-zero(四) 错误处理(统一响应信息)

go-zero 错误处理&#xff08;统一响应信息&#xff09; 在实现注册逻辑时&#xff0c;尝试重复注册可能会返回 400 状态码&#xff0c;显然不符合正常设计思维。我们希望状态码为 200&#xff0c;并在响应中返回错误信息。 一、使用第三方库 1.下载库 目前 go-zero官方的…...

1.1 爬虫的一些知识(大模型提供语料)

1.1 爬虫的一些知识&#xff08;大模型提供语料&#xff09; 网页资源&#xff1a; 资源组织方式&#xff1a;列表分页,搜索引擎&#xff0c;推荐 发送请求的文档类型&#xff1a;html ,js 响应请求的文档类型&#xff1a;html,js,json 请求方式&#xff1a;同步和异步 页面形式…...

Linux开发工具:Vim 与 gcc,打造高效编程的魔法双剑

文章目录 一、初识Vim模式 二、vim基本操作2.1基础操作2.2命令模式/正常模式2.2.1光标定位2.2.2复制粘贴、删除2.2.3撤销2.2.4替换字符2.2.5替换模式 2.3底行模式2.3.1退出vim和**保存文件**2.3.2定位文本字符串2.3.3命令2.3.4实现分屏2.3.5替换指定字符串 2.4补充指令2.4.1视图…...

cesium for unity的使用

先聊聊导入 看到这里的因该能够知道&#xff0c;官网以及网上绝大多数的方法都导入不进来&#xff0c;那么解决方法如下: 两个链接&#xff1a;按照顺序依次下载这两个tgz和zip&#xff0c;其中tgz为主要部分&#xff0c;zip为示例工程项目 如果您要查看示例工程项目的话&am…...

Android AOSP 架构和各层次开发内容介绍

一、系统架构总况​​​​ 官方文档:架构概览 | Android Open Source Project (google.cn)https://source.android.google.cn/docs/core/architecture?hl=zh-cn 下面是Google Android 提供的最新架构层次图: 图. AOSP 的软件堆栈层次 System API 表示仅供合作伙伴和 OEM…...

Kafka 到 Kafka 数据同步

简述 Kafka 为处理实时数据提供了一个统一、高吞吐、低延迟的平台&#xff0c;其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”&#xff0c;这使它作为企业级基础设施来处理流式数据非常有价值。因此实现 Kafka 到 Kafka 的数据同步也成了一项重要…...

华为刷题笔记--题目索引

文章目录 更多关于刷题的内容欢迎订阅我的专栏华为刷题笔记简单题目 更多关于刷题的内容欢迎订阅我的专栏华为刷题笔记 该专栏题目包含两部分&#xff1a; 100 分值部分题目 200 分值部分题目 所有题目都会陆续更新&#xff0c;订阅防丢失 简单题目 –题目分值试卷1华为OD机…...

osgEarth加载倾斜摄影测量数据

一、代码 // .cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <osgViewer/Viewer> #include <osgEarth/Notify> #include <osgEarth/EarthManipulator>...

消息推送问题梳理-团队管理

管理用户界面&#xff1a; 新增加用户列表&#xff1a;这些用有资格收到推送消户息 当删除一个医生的时候&#xff0c;重新添加这个人的时候 发现团队中没有这个人了 &#xff0c;这个时候 需要重新添加这个人。 处理这个问题遵循的原则&#xff1a; 删除这个用户的时候&…...

如何在 Ubuntu 上使用 Docker 部署 LibreOffice Online

简介 LibreOffice Online&#xff08;也称为Collabora Online&#xff09;是一个开源的在线办公套件&#xff0c;它提供了与LibreOffice桌面版相似的功能&#xff0c;但完全在云端运行。这意味着用户可以通过浏览器访问和编辑文档&#xff0c;而无需在本地计算机上安装任何软件…...

MongoDB数据备份与恢复(内含工具下载、数据处理以及常见问题解决方法)

一、工具准备 对MongoDB进行导入导出、备份恢复等操作时需要用到命令工具&#xff0c;我们要先检查一下MongoDB安装目录下是否有这些工具&#xff0c;正常情况下是没有的:)&#xff0c;因为新版本的MongoDB安装时不包含这些工具&#xff0c;需要我们手动下载安装。下载成功之后…...

代码随想录第三十一天| 56. 合并区间 738.单调递增的数字

56. 合并区间 题目描述 给定一个区间的集合 intervals&#xff0c;请合并所有重叠的区间。 解题思路 排序区间 按照每个区间的起点 start 升序排序&#xff0c;便于后续合并。 合并区间 使用两个变量 start 和 right 分别记录当前区间的起点和终点。遍历排序后的区间&#x…...

C语言基本知识 2.2void 函数

在C语言中&#xff0c; void 是一个重要的关键字&#xff0c;具有多种用途&#xff0c;以下是详细介绍&#xff1a; 函数返回值类型声明 - 当函数不需要返回任何值时&#xff0c;可以将函数的返回值类型声明为 void 。例如&#xff1a; void printMessage() { printf(…...

win7网站开发教程/网络营销方式都有哪些

RequestMapping注解 1、RequestMapping注解的功能 从注解名称上我们可以看到&#xff0c;RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来&#xff0c;建立映射关系。 SpringMVC 接收到指定的请求&#xff0c;就会来找到在映射关系中对应的控制器方法来处理…...

用凡客建站做的网站有哪些/山东大学经济研究院

近两年像LOL、吃鸡这种竞技类游戏从来都是国内游戏市场中的常青树&#xff0c;尤其是英雄联盟&#xff0c;运营多年至今热度不减反增&#xff0c;保持这种状态实在难能可贵&#xff0c;其中很大的原因是这种MOBA类游戏往往靠技术说话&#xff0c;而至于氪金多少只能彰显在外观是…...

手机网站怎么建立/seo免费教程

这是一道选择题&#xff0c;答案是&#xff1a;(设&#xff0c;收银员和顾客的私有信号量为S1和S2) a&#xff1a;P(Sn) &#xff1b;b1&#xff1a;V(S1)&#xff1b;b2&#xff1a;P(S2)&#xff1b;c1&#xff1a;P(S1)&#xff1b;c2&#xff1a; V(S2)&#xff1b; 我是…...

心连网网站/推广神器

在“新基建”全面推进&#xff0c;5G与AI技术掀起新一轮技术革命浪潮的今天&#xff0c;爆发的数据、算法、算力加速了许多产业的数智转型&#xff0c;对于各行业来说蕴含的时代机遇巨大。在技术与产业升级的背景下&#xff0c;需要应对众多集成与融合的技术创新需求&#xff0…...

偷拍做愛视频网站/seo深圳优化

alias 别名 -爱力儿丝 align 排列、对齐 -厄烂 argument引数(传给函式的值) -阿记门忒--&#xff08;te一生&#xff09; array 数组 -厄瑞 assign 赋值 -厄撒恩 authorization 授权 -啊破瑞贼身 echo 输出 -爱扣 define 规定 -&#xff08;dei一生&#xff09;饭 func…...

个人作品集网站是怎么做/百度信息流怎么收费

MySQL中的创建库、表以及查询语句对我们以后很好的应用数据库是很大有帮助的&#xff0c;博文中是对这些基础语句的总结&#xff0c;希望会对大家有些帮助1、创建与删除数据库创建数据库 mysql> create database testdb; mysql> create database if not exists testdb;my…...