• 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();
    
        }
    }
  • 相关阅读:
    ios9 键盘使uiwindow上移
    UIStackView在UITableviewCell中
    uitableviewcell侧滑删除等
    系统设置
    UIImagePickerController 导航样式调整
    设置frame时,大小在不同型号手机上不同
    storyBoard Reference 的坑
    uitableview 滚回顶部
    swift格式化输出
    UIAlertController
  • 原文地址:https://www.cnblogs.com/zplogo/p/9871089.html
Copyright © 2020-2023  润新知