MySQL導出表結構相關字段以及把字段由下划線轉駝峰命名



SELECT
COLUMN_COMMENT 中文名, UPPER(COLUMN_NAME) 字段名, UPPER(DATA_TYPE) 字段類型, CHARACTER_MAXIMUM_LENGTH 長度, IS_NULLABLE 是否為空 FROM INFORMATION_SCHEMA.COLUMNS where table_schema ='shwmm' AND table_name = 'gis_interface_veh_his_gps_data'

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedHashMap;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.mysql.jdbc.Connection;

/**
 * 工具類
 * MySQL中以“_”分割的列名格式化為駝峰命名的列名
 */
public class FormatDbColumns {
    static final String DB_URL = "jdbc:mysql://localhost:3306/shwmm";
    // MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱:連接端口/數據庫的名稱
    static final String USER = "root";
    static final String PASS = "root";

    public static void main(String[] args) throws SQLException,Exception{
        Connection conn = null;
        Statement stat = null;

        // 注冊驅動
        Class.forName("com.mysql.jdbc.Driver");

        // 創建鏈接
        conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);

        String str = "am_alarm_detail";

        // 執行查詢
        stat = conn.createStatement();
        String sql = "select LOWER(COLUMN_NAME) as columnName from information_schema.COLUMNS where table_name = '"+str+"'";
        ResultSet rs = stat.executeQuery(sql);
        // 輸出查詢結果
        int i = 0;
        Map<String,String> map = new LinkedHashMap<>();
        while(rs.next()){
            i++;
            String a = rs.getString("columnName");
            String b= camelCaseName(a);
            map.put(b,"xxx");
            System.out.println(b);
        }

        System.out.println(JSONObject.toJSONString(map));
        System.out.println(i);
        // 關閉
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (stat != null) {
                    stat.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public static String camelCaseName(String underscoreName) {
        StringBuilder result = new StringBuilder();
        if (underscoreName != null && underscoreName.length() > 0) {
            boolean flag = false;
            for (int i = 0; i < underscoreName.length(); i++) {
                char ch = underscoreName.charAt(i);
                if ("_".charAt(0) == ch) {
                    flag = true;
                } else {
                    if (flag) {
                        result.append(Character.toUpperCase(ch));
                        flag = false;
                    } else {
                        result.append(ch);
                    }
                }
            }
        }
        return result.toString();

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM