# huaweicloud-ugo-sql-conversion-java **Repository Path**: HuaweiCloudDeveloper/huaweicloud-ugo-sql-conversion-java ## Basic Information - **Project Name**: huaweicloud-ugo-sql-conversion-java - **Description**: 基于数据库和应用迁移 UGO服务,实现异构数据库之间的SQL语句转换。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2022-09-21 - **Last Updated**: 2025-01-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 0.版本说明 本示例配套的SDK版本为:3.0.104 ## 1.功能介绍 本示例展示如何基于数据库和应用迁移 UGO服务的SDK,实现异构数据库之间的SQL语句转换。 ## 2.前置条件 - 已[注册](https://reg.huaweicloud.com/registerui/cn/register.html?locale=zh-cn#/register)华为云, 并完成[实名认证](https://account.huaweicloud.com/usercenter/?region=cn-north-4#/accountindex/realNameAuth) 。 - 已获取华为云开发工具包(SDK)。 - 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。 具体请参考[访问密钥](https://support.huaweicloud.com/usermanual-ca/zh-cn_topic_0046606340.html)。 - 已具备开发环境 ,支持Java JDK 1.8及其以上版本。 ## 3.SDK获取和安装 您可以通过Maven配置所依赖的SDK,具体的SDK版本号请参见[SDK开发中心](https://sdkcenter.developer.huaweicloud.com/?language=java) 。 ```xml com.huaweicloud.sdk huaweicloud-sdk-ugo 3.0.104 ``` ## 4.示例代码 以下代码展示如何使用SDK实现异构数据库之间的SQL语句转换: ```java /* * Copyright (c) Huawei Technologies Co., Ltd. 2022-2022. All rights reserved. */ package com.huawei.demo; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.http.HttpConfig; import com.huaweicloud.sdk.ugo.v1.UgoClient; import com.huaweicloud.sdk.ugo.v1.model.RunSqlConversionRequest; import com.huaweicloud.sdk.ugo.v1.model.RunSqlConversionResponse; import com.huaweicloud.sdk.ugo.v1.model.SqlConvertReq; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 数据库和应用迁移 UGO的示例代码:SQL语句转换 * * @since 2022-08-20 */ public class SqlConversionDemo { private static final Logger logger = LoggerFactory.getLogger(SqlConversionDemo.class); public static void main(String[] args) { UgoClient ugoClient = getUgoClient(); // Start to convert SQL statement RunSqlConversionRequest sqlConversionRequest = new RunSqlConversionRequest(); SqlConvertReq sqlConversionBody = new SqlConvertReq(); sqlConversionBody.setSourceDbType(SqlConvertReq.SourceDbTypeEnum.ORACLE); sqlConversionBody.setTargetDbType(SqlConvertReq.TargetDbTypeEnum.RDS_FOR_MYSQL); sqlConversionBody.setTargetDbVersion(SqlConvertReq.TargetDbVersionEnum._5_7); sqlConversionBody.setSqlStatement("select * from dual;"); sqlConversionRequest.setBody(sqlConversionBody); RunSqlConversionResponse runSqlConversionResponse = ugoClient.runSqlConversion(sqlConversionRequest); logger.info(runSqlConversionResponse.toString()); } private static UgoClient getUgoClient() { // 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); String endpoint = ""; String projectId = ""; // Http Configuration for client HttpConfig config = HttpConfig.getDefaultHttpConfig(); config.withIgnoreSSLVerification(true); // Create the authentication BasicCredentials auth = new BasicCredentials() .withAk(ak) .withSk(sk) .withProjectId(projectId); // Create UgoClient instance return UgoClient.newBuilder() .withHttpConfig(config) .withCredential(auth) .withEndpoint(endpoint) .build(); } } ``` ## 5.返回结果示例 - SQL语句转换(RunSqlConversion)接口的返回值: ``` { "converted_sql_statement":"select * from dual;", "is_support_conversion":true } ``` ## 6.参考链接 更多信息请参考[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/sdk?product=ugo) 和数据库和应用迁移 UGO服务文档的[API参考](https://support.huaweicloud.com/api-ugo/ugo_05_0002.html)。 ## 修订记录 | 发布日期 | 文档版本 | 修订说明 | | :--------: | :------: | :----------: | | 2022-09-22 | 1.0 | 文档首次发布 |