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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java【网络原理】(2)初识网络续与网络编程

目录 1.前言 2.正文 2.1TCP协议与UDP协议 2.2socket API进行网络编程 2.2.1DatagramPacket类 2.2.1.1发送数据报 2.2.1.2接收数据报 2.2.1.3获取数据报内容 2.2.1.4设置数据报内容 2.2.2DatagramSocket类 2.2.2.1构造方法 2.2.2.2常用方法 2.2.3具体代码与解释 3…

【Oracle专栏】sqlplus显示设置+脚本常用显示命令

Oracle相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff5e;-CSDN博客 1.内容概述 本文主要针对oracle 运维中常用知识点进行整理&#xff0c;包括&#xff1a; 1&#xff09;sqlplus模式下&#xff0c;为了方便查询设置相应的行宽、列宽、行数。…

在一台win10专业版设备上使用docker的怪现象

这台设备上&#xff0c;wsl环境无法直接安装docker&#xff0c;必须要在宿主机安装Docker Desktop.然后&#xff0c;在wsl运行前&#xff0c;要先启动docker desktop&#xff0c;否则&#xff0c;你看不到你自己创建的映像。 然后如果没有docker desktop加持&#xff0c;你在尝…

Unity 中Sirenix.OdinInspector 插件常用功能梳理

案例一 public class PracticeAssets : ScriptableObject {[SerializeField][Searchable][ListDrawerSettings(ShowIndexLabels true)][LabelText("练习版数据列表")]public List<PracticeData> Practicies new List<PracticeData>(); } 1. Serialize…

C++ | 面向对象 | 类

&#x1f47b;类 &#x1f47e;语法格式 class className{Access specifiers: // 访问权限DataType variable; // 变量returnType functions() { } // 方法 };&#x1f47e;访问权限 class className {public:// 公有成员protected:// 受保护成员private:// 私有成员 }…

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(五) 实现登录功能

1.登录页面 完善登录页面 和注册差不多 直接copy signUpPage 内容 再稍微修改下 import { useState } from "react"; import { useAuthStore } from "../store/useAuthStore"; import { MessageSquare,Mail,Lock,Eye, EyeOff,Loader2} from "lucide…

Spring Boot电影评论网站系统设计与实现

随着互联网和娱乐产业的发展&#xff0c;电影评论网站逐渐成为人们分享观影体验、交流影评的重要平台。本文将介绍一个基于Spring Boot框架开发的电影评论网站系统的功能设计与实现方案。 功能模块概述 该电影评论网站系统分为管理员模块和用户模块两大核心部分&#xff0c;以…

XFeat:轻量级的深度学习图像特征匹配

一、引言&#xff1a;图像特征匹配的挑战与XFeat的突破 在计算机视觉领域&#xff0c;图像特征匹配是视觉定位&#xff08;Visual Localization&#xff09;、三维重建&#xff08;3D Reconstruction&#xff09;、增强现实&#xff08;AR&#xff09;等任务的核心基础。传统方…

【TVM教程】为 NVIDIA GPU 自动调度神经网络

Apache TVM 是一个深度的深度学习编译框架&#xff0c;适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/ 作者&#xff1a;Lianmin Zheng 针对特定设备和工作负载的自动调优对于获得最佳性能至关重要。本文介绍如何使用 auto-sched…

postgresql postgis扩展相关

项目 下载地址 http://rpmfind.net/linux/rpm2html/search.php?queryprotobuf(x86-64) Postgis Index of /postgis/source/ proj4 Index of /proj/ geos Index of /geos/ libxml2 ftp://xmlsoft.org/libxml2/ Index of /sources Json-c Releases json-c/json-c G…

解锁健康密码,拥抱养生生活

在快节奏的现代生活中&#xff0c;健康养生愈发重要&#xff0c;它是我们保持活力、预防疾病、享受美好生活的关键。那究竟如何开启健康养生之旅呢&#xff1f; 合理饮食是养生基石。遵循 “食物多样&#xff0c;谷类为主” 原则&#xff0c;每日摄入谷薯类、蔬菜水果、畜禽鱼蛋…

JavaWeb中的cookie使用

Cookie 1、Cookie是服务端向客户端响应的一小段数据&#xff0c;最终存放在客户端中&#xff1b;之后客户端每次向服务端发送请求&#xff0c;都会在请求头中携带cookie 2、cookie是有时效性的&#xff0c;默认是Session级别&#xff08;整个浏览器关闭才会消失&#xff0c;内存…

el-input实现金额输入

需求&#xff1a;想要实现一个输入金额的el-input&#xff0c;限制只能输入数字和一个小数点。失焦数字转千分位&#xff0c;聚焦转为数字&#xff0c;超过最大值&#xff0c;红字提示 效果图 失焦 聚焦 报错效果 // 组件limitDialog <template><el-dialog:visible.s…

AcWing 蓝桥杯集训·每日一题2025·密接牛追踪2

密接牛追踪2 农夫约翰有 N 头奶牛排成一排&#xff0c;从左到右依次编号为 1∼N。 不幸的是&#xff0c;有一种传染病正在蔓延。 最开始时&#xff0c;只有一部分奶牛受到感染。 每经过一个晚上&#xff0c;受感染的牛就会将病毒传染给它左右两侧的牛&#xff08;如果有的话…

30 分钟从零开始入门 CSS

HTML CSS JS 30分钟从零开始入门拿下 HTML_html教程-CSDN博客 30 分钟从零开始入门 CSS-CSDN博客 JavaScript 指南&#xff1a;从入门到实战开发-CSDN博客 前言 最近也是在复习&#xff0c;把之前没写的博客补起来&#xff0c;之前给大家介绍了 html&#xff0c;现在是 CSS 咯…

LabVIEW图像识别抗干扰分析

问题描述 在基于LabVIEW的探针定位系统中&#xff0c;存在两个核心技术难点&#xff1a; 相机畸变导致初始定位误差&#xff1a;非线性畸变使探针无法通过坐标变换直接精确定位&#xff0c;需采用粗定位图像修正的两段式控制策略。 图像识别可靠性不足&#xff1a;复杂背景&a…

浅显易懂HashMap的数据结构

HashMap 就像一个大仓库&#xff0c;里面有很多小柜子&#xff08;数组&#xff09;&#xff0c;每个小柜子可以挂一串链条&#xff08;链表&#xff09;&#xff0c;链条太长的时候会变成更高级的架子&#xff08;红黑树&#xff09;。下面用超简单的例子解释&#xff1a; ​壹…

drupal如何支持多语言

Drupal 支持多语言的功能强大&#xff0c;可以帮助网站实现多语言内容管理。以下是如何在 Drupal 中配置和启用多语言支持的步骤&#xff1a; 1. 启用多语言模块 首先&#xff0c;您需要确保已启用 Drupal 的相关模块。这些模块包括&#xff1a; Language&#xff08;语言&a…

【HarmonyOS Next】鸿蒙应用折叠屏设备适配方案

【HarmonyOS Next】鸿蒙应用折叠屏设备适配方案 一、前言 目前应用上架华为AGC平台&#xff0c;都会被要求适配折叠屏设备。目前华为系列的折叠屏手机&#xff0c;有华为 Mate系列&#xff08;左右折叠&#xff0c;华为 Mate XT三折叠&#xff09;&#xff0c;华为Pocket 系列…

SE注意力机制详解:从原理到应用,全面解析Squeeze-and-Excitation模块

Squeeze-and-Excitation (SE) 模块的原理与应用 1. 引言&#xff1a;注意力机制的意义 在深度学习领域&#xff0c;注意力机制&#xff08;Attention Mechanism&#xff09;通过模拟人类视觉的“聚焦”特性&#xff0c;赋予模型动态调整特征重要性的能力。传统卷积神经网络&a…