//package com.unis.common.util;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//
//import java.sql.*;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * 库级系统补注释
// *
// * @author ybw
// * @version V1.0
// * @className MysqlUtilTest
// * @date 2024/5/13
// **/
//@Slf4j
//public class MysqlUtilTest {
//    //源库
//    static final String URL_DB1 = "jdbc:mysql://172.16.0.36:3306/test";
//    //目标库
//    static final String URL_DB2 = "jdbc:mysql://172.16.0.36:3306/depot_qh";
//    static final String USER = "root";
//    static final String PASS = "admin@1234";
//
//    public static void main(String[] args) {
//        // 连接到db1以获取表的注释信息
//        try (Connection connDb1 = DriverManager.getConnection(URL_DB1, USER, PASS)) {
//            try (Connection connDb2 = DriverManager.getConnection(URL_DB2, USER, PASS)) {
//                DatabaseMetaData metaDataDb1 = connDb1.getMetaData();
//
//                // 获取db1中所有表的元数据
//                ResultSet tables = metaDataDb1.getTables(null, null, "%", new String[]{"TABLE"});
//
//                while (tables.next()) {
//                    String tableName = tables.getString("TABLE_NAME");
//                    ResultSet columns = metaDataDb1.getColumns(null, null, tableName, "%");
//
//                    Statement stmtDb2 = connDb2.createStatement();
//                    while (columns.next()) {
//                        String columnName = columns.getString("COLUMN_NAME");
//                        String columnType = columns.getString("TYPE_NAME").toUpperCase();
//                        int dataType = columns.getInt("DATA_TYPE");
//                        String columnSize = columns.getString("COLUMN_SIZE");
//                        boolean isNullable = columns.getInt("NULLABLE") == DatabaseMetaData.columnNullable;
//                        String columnDefault = columns.getString("COLUMN_DEF");
//                        String columnComment = columns.getString("REMARKS");
//
//
//                        // 跳过非VARCHAR类型的字段或注释为空的
//                        if (!columnType.startsWith("VARCHAR") || StringUtils.isEmpty(columnComment)) {
//                            // 跳过非VARCHAR类型的字段
//                            continue;
//                        }
//
//                        // 构建字段定义字符串
//                        String columnDefinition = columnType + "(" + columnSize + ")" +
//                                " CHARACTER SET utf8mb4 " +
//                                " COLLATE utf8mb4_0900_ai_ci " +
//                                (isNullable ? " NULL" : " NOT NULL") +
//                                (StringUtils.isNotEmpty(columnDefault) ? " DEFAULT '" + columnDefault + "'" : "");
//
//                        // 构建完整的ALTER TABLE语句
//                        String alterStatement = "ALTER TABLE `" + tableName + "` " +
//                                "MODIFY COLUMN `" + columnName + "` " + columnDefinition +
//                                " COMMENT '" + columnComment + "'";
//                        System.out.println(alterStatement);
//
//                        try {
//                            // 执行ALTER TABLE语句
//                            int updateCount = stmtDb2.executeUpdate(alterStatement);
//                            System.out.println("Updated column: " + columnName + " - Rows affected: " + updateCount);
//                        } catch (SQLException e) {
//                            log.error("sql error:", e);
//                        }
//                    }
//                }
//            } catch (SQLException e) {
//                e.printStackTrace();
//            }
//        } catch (SQLException e) {
//            throw new RuntimeException(e);
//        }
//    }
//}
