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

Spring Boot操作MaxComputer(保姆级教程)

目录

引言

一、引入依赖

二、配置文件 application.properties(信息用自己的奥)

三、实体类User.java

四、UserController

五、UserService

六、UserDao

七、UserDao.xml

八、postman 访问,成功查询数据

附件(修改和删除数据)


引言

  MaxComputer本质上是管理dataworks 中的表,我们如何用Java框架来操作MaxComputer中的表数据呢,有几种方法,今天我推荐的是MaxComputer结合Spring Boot ;MyBatis 的操作方式,这种方法优点是很简单,不用学习新的API 数据mybatis 操作即可。

首先要在阿里云后台创建一张表,下面我用user 表测试

https://maxcompute.console.aliyun.com/cn-shanghai/sql-express

一、引入依赖

      <!-- spring boot 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--添加阿里云的依赖--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.0</version></dependency><dependency><groupId>com.aliyun.odps</groupId><artifactId>odps-sdk-udf</artifactId><version>0.36.4-public</version></dependency><dependency><groupId>com.aliyun.odps</groupId><artifactId>odps-sdk-core</artifactId><version>0.36.4-public</version></dependency><!-- MyBatis 依赖 --><!-- mybatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.0.1</version></dependency><!-- MaxCompute JDBC 连接驱动 --><dependency><groupId>com.aliyun.odps</groupId><artifactId>odps-jdbc</artifactId><version>3.2.0</version></dependency>

二、配置文件 application.properties(信息用自己的奥)

其中用户名和密码就是 accessKeyId和 accessKeySecret

spring.application.name= huixin-dataworks
# ???
server.port= 8080
aliyun.accessKeyId=
aliyun.accessKeySecret=N8rsIEWSH6AwinhfDp8shiDEHhRbpD
aliyun.endpoint= http://service.cn-shanghai.maxcompute.aliyun.com/api
aliyun.project= liingniu_2023
# MaxCompute 数据源配置
spring.datasource.url=jdbc:odps:http://service.cn-shanghai.maxcompute.aliyun.com/api?project=liingniu_2023
spring.datasource.username=
spring.datasource.password=N8rsIEWSH6AwinhfDp8shiDEHhRbpD
spring.datasource.driver-class-name=com.aliyun.odps.jdbc.OdpsDriver# MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml

三、实体类User.java

package com.huixin.model;public class User {private Integer id;private String name;public User(Integer id, String name) {this.id = id;this.name = name;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public User() {}
}

四、UserController

package com.huixin.controller;import com.huixin.model.User;
import com.huixin.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
@RequestMapping("/api")
public class UserController {@Autowiredprivate  UserService userService;/*** 查询数据* @return*/@GetMapping("/users")public List<User> getUsers() {return userService.selectAll();}}

五、UserService

package com.huixin.service;import com.huixin.dao.UserDao;
import com.huixin.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserDao userDao;public List<User> selectAll(){return userDao.getAllUsers();}}

六、UserDao

package com.huixin.dao;import com.huixin.model.User;
import org.apache.ibatis.annotations.Mapper;import java.util.List;/*** <p>Project: huixin-dataworks - UserDao</p>* <p>Powered by webrx On 2025-02-27 08:41:08</p>* <p>描述:<p>** @author 简单遗忘 [814736551@qq.com]* @version 1.0* @since 17*/
@Mapper
public interface UserDao {List<User> getAllUsers();}

七、UserDao.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.huixin.dao.UserDao"><select id="getAllUsers" resultType="com.huixin.model.User">SELECT id, name FROM user LIMIT 10</select></mapper>

八、postman 访问,成功查询数据

附件(修改和删除数据)

MaxCompute 是一个 分布式大数据计算平台,主要用于 批量处理,并不支持像传统数据库那样的 实时更新、删除 操作。它的设计更多地侧重于批处理和大规模数据查询,因此,MaxCompute 中并不直接支持 UPDATEDELETE 操作。

修改

但是可以使用其他方法修改数据(这个语句只修改了 id 为3 的数据其他的不影响)

INSERT OVERWRITE TABLE user
SELECTid,CASEWHEN id = 3 THEN '杨逍'ELSE nameEND AS name
FROM user;

删除

方法一:分区删除

假设 user 表是按 dt 分区的,现在你想删除 dt = '20250227' 的数据。这样会删除整个分区的数据。

ALTER TABLE user DROP PARTITION (dt = '20250227');

方法二:覆盖删除

如果你不使用分区或需要删除特定的数据,最常见的方法是通过 INSERT OVERWRITE 覆盖数据,将不需要的数据排除。

示例:删除 id = 3 的数据

INSERT OVERWRITE TABLE user
SELECT * FROM user WHERE id != 3;

相关文章:

Spring Boot操作MaxComputer(保姆级教程)

目录 引言 一、引入依赖 二、配置文件 application.properties&#xff08;信息用自己的奥&#xff09; 三、实体类User.java 四、UserController 五、UserService 六、UserDao 七、UserDao.xml 八、postman 访问&#xff0c;成功查询数据 附件(修改和删除数据) 引言…...

Spring的构造注入

1.开发步骤2.构造方法的重载 2.1参数个数不同2.2构造参数个数相同时 3.注入总结 注入&#xff1a;通过Spring的配置文件&#xff0c;为成员变量赋值 Set注入&#xff1a;Spring调用Set方法&#xff0c;通过配置文件&#xff0c;为成员变量赋值 构造注入&#xff1a;Spring调用…...

服务器IPMI用户名、密码批量检查

背景 大规模服务器部署的时候&#xff0c;少不了较多的网管和监测平台&#xff0c;这些平台会去监控服务器的性能、硬件等指标参数&#xff0c;为了便于管理和控制&#xff0c;则需要给服务器IPMI带外管理添加较多的用户&#xff0c;这就需要对较多的服务器检查所对应的IPMI用…...

管理后台环境配置

后端配置及启动 a. 软件安装 1. Java sdk 1.8 2. maven 3.6 3. intellij IDEA 2024 4. Visual C Redistributable 5. mongodb 7.0 6. mysql 8.0 双击安装&#xff1a;mysql-installer-community-8.0.41.0.msi 版本选择&#xff1a;Full&#xff0c;包括服务器和客户端 …...

element-ui infiniteScroll 组件源码分享

简单分享 infiniteScroll 组件源码&#xff0c;主要有以下四个方面&#xff1a; 1、infiniteScroll 页面结构。 2、infiniteScroll 组件属性。 3、组件内部的方法。 4、存在的问题。 一、infiniteScroll 页面结构&#xff1a; 二、页面属性。 2.1 infinite-scroll-disab…...

Pany-v2:LFI漏洞探测与敏感文件(私钥窃取/其他)自动探测工具

地址:https://github.com/MartinxMax/pany 关于Pany-v2 Pany-v2 是一款 LFI&#xff08;本地文件包含&#xff09;漏洞探测工具&#xff0c;具备自动识别敏感文件的能力。它能够利用 LFI 漏洞检测并提取 id_rsa 私钥、系统密码文件以及其他可能导致安全风险的敏感信息。该工具…...

供应链管理系统--升鲜宝门店收银系统功能解析,登录、主界面、会员 UI 设计图(一)

供应链管理系统--升鲜宝门店收银系统功能解析&#xff0c;登录、主界面 会员 UI 设计图&#xff08;一&#xff09;...

Day11,Hot100(贪心算法)

贪心 &#xff08;1&#xff09;121. 买卖股票的最佳时机 第 i 天卖出的最大利润&#xff0c;即在前面最低价的时候买入 class Solution:def maxProfit(self, prices: List[int]) -> int:min_price prices[0]ans 0for price in prices:ans max(ans, price - min_price…...

nss刷题4

[SWPUCTF 2023 秋季新生赛]Pingpingping 看看源码&#xff0c;首先是get传参Ping_ip.exe,然后如果请求了_ping参数&#xff0c;就会执行ping命令&#xff0c;执行三次 <?php highlight_file(__FILE__); error_reporting(0); $_ping $_GET[Ping_ip.exe]; if(isset($_ping…...

Eclipse 编译项目指南

Eclipse 编译项目指南 引言 Eclipse 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;广泛用于Java、C/C、Python等多种编程语言的开发。在Eclipse中编译项目是进行软件开发的基础步骤。本文将详细介绍如何在Eclipse中编译项目&#xff0c;包括项目设置…...

天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库

天佐.乾坤袋 天佐.乾坤袋 简介 天佐.乾坤袋 基于抽屉式文件存储的NoSql数据库&#xff0c;可用于文件打包&#xff0c;数据整合&#xff0c;加密存放等多种用途。可以方便快捷的搭建和部署存储应用的系统。 传说: 弥勒所有&#xff0c;专做储物之用。拥有不可思议之力&#x…...

win11编译pytorch cuda128版本流程

Geforce 50xx系显卡最低支持cuda128&#xff0c;torch cu128 release版本目前还没有释放&#xff0c;所以自己基于2.6.0源码自己编译wheel包。 1. 前置条件 1. 使用visual studio installer 安装visual studio 2022&#xff0c;工作负荷选择【使用c的桌面开发】,安装完成后将…...

Windows 11 下正确安装 Docker Desktop 到 D 盘的完整教程

文章目录 Windows 11 在 D 盘正确安装 Docker Desktop 的完整教程**前言****准备工作****1. 手动创建 Docker 相关目录**&#xff08;⚠️ **这一步非常重要**&#xff0c;否则会报错&#xff09;**2. 下载 Docker Desktop 安装程序****3. 使用管理员权限打开终端** **安装 Doc…...

IDEA - 查看类的继承结构(通过快捷键查看、通过生成类图查看)

一、通过快捷键查看 在项目中定位到目标类&#xff08;例如&#xff0c;Executor.java&#xff09; 按下快捷键 【Ctrl H】 此时会弹出 Type Hierarchy 窗口&#xff0c;展示所有相关的父类、子类、接口 二、通过生成类图查看 在项目中定位到目标类&#xff08;例如&#x…...

Vue 3指令全解析:内置指令与自定义指令实战指南

Vue指令是模板语法的核心武器&#xff0c;它们以v-前缀的形式为HTML元素添加特殊功能。本文将深入探讨Vue 3中的指令系统&#xff0c;覆盖10个核心指令的妙用&#xff0c;并手把手教你打造专属自定义指令。 一、Vue指令基础认知 指令本质上是DOM操作的语法糖&#xff0c;它们&…...

Springboot 自动化装配的原理

Springboot 自动化装配的原理 SpringBoot 主要作用为&#xff1a;起步依赖、自动装配。而为了实现这种功能&#xff0c;SpringBoot 底层主要使用了 SpringBootApplication 注解。 首先&#xff0c;SpringBootApplication 是一个复合注解&#xff0c;它结合了 Configuration、…...

Linux——进程池

前言&#xff1a;大佬写博客给别人看&#xff0c;菜鸟写博客给自己看&#xff0c;我是菜鸟。 1.实现思路 思路&#xff1a;通过创建匿名管道&#xff0c;来实现父子进程之间的通信 注1&#xff1a;父写&#xff0c;子读 注2&#xff1a;匿名管道只能用来进行具有血管关系的进程…...

Qt基于等待条件QWaitCondition实现的任务队列模型示例

核心概念 Qt中的QWaitCondition是一个用于多线程同步的类&#xff0c;允许线程在某些条件满足时唤醒其他等待的线程。它通常与QMutex配合使用&#xff0c;协调线程之间的执行顺序&#xff0c;适用于生产者-消费者模型、任务队列调度等场景。 ​wait()&#xff1a;使当前线程进…...

微服务即时通信系统---(六)语音识别子服务

目录 功能设计 模块划分 业务接口/功能示意图 服务实现流程思想 服务代码实现 编写proto文件 服务端创建子类(SpeechRecognitionServiceImpl)完成RPC服务调用函数重写 SpeechRecognize(语音识别) 服务端完成语音识别子服务类(SpeechRecognitionServer) 注意 …...

JavaWeb基础专项复习5——请求对象和响应对象request and response

系列文章目录 1、JavaWeb基础专项复习1——XML文件-CSDN博客 2、JavaWeb基础专项复习2——JSP文件-CSDN博客 3、JavaWeb基础专项复习2——Servlet相关知识-CSDN博客 4、JavaWeb基础专项复习4——会话对象Session and Cookie-CSDN博客 文章目录 系列文章目录文章目录1、Tom…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...